gpt4 book ai didi

javascript - 是否内置选择器选项以使用 nightwatchjs 做出复杂的决策?

转载 作者:太空宇宙 更新时间:2023-11-04 00:39:42 25 4
gpt4 key购买 nike

使用名为 NightWatch 的 JavaScript Selenium 工具,在应用测试之前确定 GUI 部分的良好做法是什么?例如,查找 A 或 B 上的情况,然后进行单独的测试。另一个例子,确定是否已登录,这样你就不会继续登录等。似乎当我将 if 语句与选择器一起使用时,如果我得到 else ,它就会失败选项。

我已经使用Python API很长时间了,你可以访问所有Python库,你可以使用Selenium选择器来验证,不会导致错误等。我什至使用过npm Selenium API,得到了类似的结果,虽然对于它的工作原理还很陌生,但无论我尝试什么,我都无法让 NightWatch 层做很多其他事情,除了 E2E 通过或失败。

我想我会把它放在那里,这样我就可以看看我是否只是做错了,或者这是否是一个常见问题。或者,也许还有其他库旨在帮助我寻找东西。任何意见将不胜感激。

这是一个 Python 通用示例,我可以用它来验证 A/B 选项是否有效...

# so you know what EC is
from selenium.webdriver.support import expected_conditions as EC

...

try:
wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, '#foo')))
driver.find_element_by_css_selector('#blah1 a').click()
except:
driver.find_element_by_css_selector('#blah2 a').click()

还有另一种可能更简洁的 Python 方式......

if len(driver.find_elements_by_css_selector('#blah1 a')) > 0:
driver.find_element_by_css_selector('#blah1 a').click()
else:
driver.find_element_by_css_selector('#blah2 a').click()

这里显然需要更多的逻辑,因为它没有夜巡所具有的所有内置功能,但这应该让我知道我正在尝试做什么。

最佳答案

您可以在 Nightwatch.js 中使用条件语句,但由于编程是异步的,因此需要将其放置在回调中。以下是单击链接并根据元素是否存在断言标题的示例:

client
.url('http://stackoverflow.com/')
.elements('css selector', '#abcd', function(result) {
if (result.value.length) { // if element is present
client.click('#nav-questions');
client.assert.title("Newest Questions - Stack Overflow");
} else {
client.click('#nav-askquestion');
client.assert.title("Ask a Question - Stack Overflow");
}
})
.end();

关于javascript - 是否内置选择器选项以使用 nightwatchjs 做出复杂的决策?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37402386/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com