Javascript:selenium Web驱动程序isDisplayed()不工作
Javascript: selenium webdriver isDisplayed() not working
我正在使用JavaScript编写一个关于selenium的测试。
在我的测试中,有一次,我遍历了一个输入元素数组,并希望为可见的输入填充一个值。
if (textInputs.length > 0) {
console.log('handling text input');
var i, textInputLen;
for (i = 0, textInputLen = textInputs.length; i < textInputLen; i++) {
(function (index) {
if (textInputs[index].isDisplayed()) {
textInputs[index].sendKeys("custom text box - " + textBoxes);
textBoxes++;
}
}(i))
}
}
我一直收到以下错误ElementNotVisibleError: element not visible
,因为它试图填充一个没有显示在DOM上的输入。为什么它不起作用?我怎样才能让它工作?
我尝试了一些东西而不是isDisplayed()
:
- 我执行JS来查看元素的可见性是否设置为隐藏或显示为无。这里的问题是,在这种情况下,显示的元素bing是由于一系列因素造成的,我正在寻找更通用的东西。在这种情况下,isDisplayed()正是我想要的
请告知
方法.isDisplayed()
返回一个promise,而不是显示的状态。使用then
得到解析结果:
element.isDisplayed().then(function(state){
console.log(state):
});
但更好的方法是用webdriver.promise.filter
:过滤元素列表
var textInputs = driver.findElements(By.css("input[type=text]"));
webdriver.promise.filter(textInputs, function(element) {
return element.isDisplayed();
}).then(function(element) {
element.sendKeys("my text");
});
相关文章:
- Javascript:selenium Web驱动程序isDisplayed()不工作
- jQuery UI自动完成突然停止工作
- AngularJS UI路由器不能像ng路由器那样工作
- HTML5音频加载和播放获胜'我不能在iPad上工作
- JavaScript打印功能使日历停止工作
- Javascript.getHours()工作不正常
- 为什么这在IE中的工作方式与在Firefox中不同
- 视频HTML没有'无法在Internet Explorer 11上工作
- 扩展移相器按钮类不工作
- Firebase迁移-简单的Firebase.set没有'不再工作了——旧的还是新的
- 谷歌地图不是以HTML显示,而是在JS Fiddle上工作
- 正在尝试使用if和else添加类,但无法正常工作
- Jquery FadeIn FadeOut 只工作一次
- Foreach无法在Typescript中工作
- 另一个ajax调用中的Jquery ajax调用在for循环中没有按预期工作
- 为什么不是't窗口.恢复正常工作吗?(javascript/jquery)
- JS可以在Chrome中工作,但不能在Firefox中工作
- ajaxToolkit PopupControlExtender不工作.过时的
- HTML标记在脚本标记中工作
- javascript扫雷器floodfill算法不能正常工作