Javascript Selenium webdriver TypeError:element.isDisplayed不是函数
我有一个错误: TypeError:element.isDisplayed不是函数 执行以下代码时:Javascript Selenium webdriver TypeError:element.isDisplayed不是函数,javascript,jquery,ajax,selenium,selenium-webdriver,Javascript,Jquery,Ajax,Selenium,Selenium Webdriver,我有一个错误: TypeError:element.isDisplayed不是函数 执行以下代码时: var webdriver = require('selenium-webdriver'), By = webdriver.By, until = webdriver.until; var driver = new webdriver.Builder() .forBrowser('chrome') .usingServer('http://localhost:4444/wd/h
var webdriver = require('selenium-webdriver'),
By = webdriver.By,
until = webdriver.until;
var driver = new webdriver.Builder()
.forBrowser('chrome')
.usingServer('http://localhost:4444/wd/hub')
.build();
driver.get('https://www.test.com');
driver.wait(until.elementIsVisible(By.id('someButton')), 5000);
这是在我的本地计算机上使用和启动服务器时使用的:
webdriver管理器启动
我的规格:
Mac oSX Sierra 10.12.6
铬v60
我正在开发的网站正在使用AJAX加载页面,这可能会有所不同?问题
until.element可见(..)
需要WebElement
而不是定位器作为参数
解决方案
书写
driver.wait(until.elementIsVisible(driver.findElement(By.id('someButton'))), 5000);
而不是
driver.wait(until.elementIsVisible(By.id('someButton')), 5000);
这将解决问题
更多信息
某些版本的selenium webdriver、safari driver存在问题。您能用Safari 9.1测试一下您使用的是哪种硒绑定吗<代码>Java
?我使用Safari 10.1.2和Firefox 54.0.1进行了测试,得到了相同的错误。我正在使用,这是完全正确的。您没有指定您正在使用的语言(应添加为标记),也没有响应对该信息的请求,因此很难说。如果我猜的话,很可能你在最后一行使用了错误的语法。在那里的某个地方应该有对ExpectedConditions
的引用。查看您的语言中的一些等待示例代码,并按照这些示例进行操作。