有没有办法等待 url 在 nightwatch 中包含某个值
Is there a way to wait for a url to contain a certain value in nightwatch
有一个等待元素可见的函数waitForElementVisible。有没有办法使用守夜人 API 等待 url 链接到特定值?
目前我们没有 waitForUrlEqual(),但如果 url 发生变化,您应该等待特定元素 visible/present。
例如:登录后,元素 ('input.password') 将不存在,因此:
而不是 browser.waitForUrlEqual(newurl)
,
我们可以试试
browser
.waitForElementNotPresent('@password',5000)
.verify.url(newUrl)
您可以通过调用
使用断言等待 url 更改
browser.assert.urlEquals(newUrl)
这里的技巧是可以全局设置断言在一个时间间隔内多次轮询,直到满足要求的条件。在那段时间之后,它最终会放弃并 return 一个错误。可以使用 nightwatch.json 全局部分中的 属性 waitForConditionTimeout 设置时间间隔。下面是一个例子
"test_settings" : {
"chrome" : {
"launch_url" : "http://localhost",
"selenium_port" : 9515,
"selenium_host" : "localhost",
"silent": true,
"driver": "chrome",
"default_path_prefix": "",
"desiredCapabilities": {
"browserName": "chrome",
"chromeOptions" : {
"args" : ["--no-sandbox","window-size=1280,800"]
}
},
"globals": {
"waitForConditionTimeout": 5000,
"retryAssertionTimeout": 20000
}}}
有一个等待元素可见的函数waitForElementVisible。有没有办法使用守夜人 API 等待 url 链接到特定值?
目前我们没有 waitForUrlEqual(),但如果 url 发生变化,您应该等待特定元素 visible/present。
例如:登录后,元素 ('input.password') 将不存在,因此:
而不是 browser.waitForUrlEqual(newurl)
,
我们可以试试
browser
.waitForElementNotPresent('@password',5000)
.verify.url(newUrl)
您可以通过调用
使用断言等待 url 更改browser.assert.urlEquals(newUrl)
这里的技巧是可以全局设置断言在一个时间间隔内多次轮询,直到满足要求的条件。在那段时间之后,它最终会放弃并 return 一个错误。可以使用 nightwatch.json 全局部分中的 属性 waitForConditionTimeout 设置时间间隔。下面是一个例子
"test_settings" : {
"chrome" : {
"launch_url" : "http://localhost",
"selenium_port" : 9515,
"selenium_host" : "localhost",
"silent": true,
"driver": "chrome",
"default_path_prefix": "",
"desiredCapabilities": {
"browserName": "chrome",
"chromeOptions" : {
"args" : ["--no-sandbox","window-size=1280,800"]
}
},
"globals": {
"waitForConditionTimeout": 5000,
"retryAssertionTimeout": 20000
}}}