Gel*_*lun 5 selenium-webdriver
我正在使用应用程序的 webdriverjs 创建一个自动化测试程序,其中“下一步”按钮经常被禁用一段时间,然后再启用。自动化等待按钮启用,然后单击按钮。
特别是按钮的类从“btn btn-next禁用”切换到“btn btn-next”
我想出了以下解决方案,但想知道是否有更好的方法?
browser.wait(until.elementLocated(By.css('nav a[class="btn btn-next"]')),
timeout, 'button still disabled after timeout').then(function() {
browser.findElement(By.css('nav a[class="btn btn-next"]')).click();
});
Run Code Online (Sandbox Code Playgroud)
这似乎可以解决问题。
最初我的想法是运行如下函数:
tryToClick = function(element){
var classValue = element.getAttribute("class");
isDisabled = classValue.search('disabled') !== -1 ? true : false;
if(isDisabled){
setTimeout(function () {
tryToClick(element);
}, 500);
} else {
element.click();
}
}
Run Code Online (Sandbox Code Playgroud)
然而,搜索、拆分、包含等方法会导致错误。有谁知道为什么?
小智 0
Java
我通常在和中工作C#
,但在 中应该有一个等效的选项JS
。您将需要使用以下命令进行显式等待:
Until.ElementIsEnabled(<locator>)
Run Code Online (Sandbox Code Playgroud)
如果没有与上面的等效项,您可以通过使用代替变量wait..until
来解决问题。在你的代码中。element.isEnabled() == false
isDisabled
归档时间: |
|
查看次数: |
16591 次 |
最近记录: |