2016-08-12 11 views
0

私がしようとしています:nightwatchjs:ループが与えながら使用して「 - プロセスのメモリ不足」

while(browser.assert.elementPresent("div[school-addlimit='2']>button[disabled='disabled']")!=null){ 
      createSchoolPage 
       .click_add_button(); 
     } 

を私は条件を使用せずに、forループを使用している場合、それが正常に動作します。

私はここで間違っていますか? browserオブジェクトへ

+1

を使用するHTMLとclick_add_button機能を投稿してください。 – 10100111001

答えて

0

browser.assert.elementPresent返す参照あなたはそのための browser.assert.elementPresent(".....") .click("......") .doAnotherAssertion("....") のようなチェーンあなたのコマンドを使用すると、要素がページに提示しているかどうかを確認したい場合は、あなたのループが

不定詞であり、その場合、クリックすることができますので、その上で、そのようにそれを行う:

var selector = "div[school-addlimit='2']>button[disabled='disabled']"; browser.element('css selector', selector, function(response) { if (response.status !== -1) { createSchoolPage.click_add_button(); } })

または

var selector = "div[school-addlimit='2']>button[disabled='disabled']"; browser.waitForElementVisible(selector, defaultMaximumWaitTime, false, function(result) { if (result.value) { createSchoolPage.click_add_button(); } }

更新

私はelementがDOMであるが、それはnot clickableときに3つの可能性を参照してください。
*ボタンは、他の要素で推移している
*ボタンは
無効になっています*ボタンがDOMであるが、それはありませんボタンはトップ

上にある場合は、最初のケースで

見える、あなたがチェックするhttps://developer.mozilla.org/en-US/docs/Web/API/Document/elementFromPointを使用することができます2番目のケースでは、あなたのCSSセレクターを更新してelement that is not disabled(ex。第三の場合https://stackoverflow.com/a/9207343/787828)(または任意の要素を検索し、その属性を確認してください)

browser.waitForElementVisible

+0

@nimus 'response.status'は、要素が常にdomで利用できるので、常にtrueと表示されます。 'response.clickable'のようなものをチェックするには? ありがとうございます! – paul

関連する問題