我试图运行我的测试使用Selenium
并刚刚遇到问题。我有我为Chrome
浏览器编写的测试。现在我一直试图在Firefox
浏览器中运行相同的测试,但失败了。Firefox不会等待页面加载Webdriverio
我已经开始调查问题,发现Firefox
不会等到页面完全加载。 Chrome完美运作。
我在Docker容器中运行Selenium
。
这里是我的脚本
storeSearch(info) {
let that = this;
return new Promise(function (resolve, reject) {
browserClient.init()
.url("http://somewhere.com")
.selectByVisibleText("#store","Tech")
// Redirect to a new page
.setValue("input[name='search']", info.searchCriteria)
.selectByValue(".featured", 'MacBook')
.click("button[name='info']")
.element('.popup')
.then(function (element) {
if (element.state === 'success') {
}
});
});
}
它不会尝试甚至从选择.selectByVisibleText("#store","Tech")
选择存储类型,只是抛出一个异常。
“(输入[名=“搜索”] \“,
我尝试添加的元件不能在页面上使用给定的搜索 参数\)”位于” timeouts
但它不工作,并给我一个错误。
browserClient.init()
.url("http://somewhere.com")
.timeouts('pageLoad', 100000)
.selectByVisibleText("#store","Tech")
引发以下错误。
“未知等待类型:页面加载\ nBuild信息:版本: '3.4.0',修订: '未知',时间: '未知' \ n系统信息:主机: 'ef7581676ebb',IP: “ 172.17.0.3',os.name:'Linux',os.arch:'amd64',os.version: '4.9.27-moby',java.version:'1.8.0_121'\ n驱动程序信息:driver.version : 未知
我一直在试图解决这个问题了两天,但至今没有运气
可能有人帮助,也许你有秒。 ome的想法是什么会导致问题?
谢谢。
UPDATE
.url("http://somewhere.com")
.pause(2000)
.selectByVisibleText("#store","Tech")
如果我把一些pause
陈述它的工作原理,但是这是真的不好,不是我想从这个框架的期望。 Chrome完美运作。它会一直等到加载栏完全加载,然后才执行操作。
问题是在geckodriver我猜测,我测试了它在Python中的相同流,Java和行为是完全一样的。
[@bxfvgekd(HTTPS:/ /stackoverflow.com/users/4671628/bxfvgekd)你有点杀死与'更新'的问题。这不是一个** geckodriver问题**,更不用说'.pause()'不是最佳实践。请考虑重新阅读我的答案并相应地更新/接受答案。干杯! – iamdanchiv
请考虑根据我的回答/以上评论结束问题。再一次,这不是一个GheckoDriver问题,它是**最佳实践**来显式等待** WebElement。干杯! – iamdanchiv