nightwatchjs:使用 while 循环给出“- 进程内存不足”
nightwatchjs: using while loop gives "- process out of memory"
我正在尝试:
while(browser.assert.elementPresent("div[school-addlimit='2']>button[disabled='disabled']")!=null){
createSchoolPage
.click_add_button();
}
如果我在不使用条件的情况下使用 for 循环,它工作正常。
我做错了什么?
browser.assert.elementPresent
returns 对 browser
对象的引用,这样你就可以像这样链接你的命令
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检查按钮是否在顶部
在第二种情况下,您需要更新 css 选择器以查找 element that is not disabled
(例如 )(或查找任何元素然后检查其属性)
第三种情况,使用browser.waitForElementVisible
我正在尝试:
while(browser.assert.elementPresent("div[school-addlimit='2']>button[disabled='disabled']")!=null){
createSchoolPage
.click_add_button();
}
如果我在不使用条件的情况下使用 for 循环,它工作正常。
我做错了什么?
browser.assert.elementPresent
returns 对 browser
对象的引用,这样你就可以像这样链接你的命令
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检查按钮是否在顶部
在第二种情况下,您需要更新 css 选择器以查找 element that is not disabled
(例如 )(或查找任何元素然后检查其属性)
第三种情况,使用browser.waitForElementVisible