我有一个错误:
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/hub')
.build();
driver.get('https://www.test.com');
driver.wait(until.elementIsVisible(By.id('someButton')), 5000);
这是在我的本地计算机上使用https://www.npmjs.com/package/selenium-webdriver并使用以下命令启动服务器:
webdriver-manager启动
我的规格:
Mac oSX Sierra 10.12.6
Chrome v60
我正在开发的网站使用AJAX加载页面可能会有所作为吗?
答案 0 :(得分:3)
<强>问题强>
until.elementIsVisible(..)
需要WebElement
而不是Locator
作为参数。
<强>解决方案强>
写作
driver.wait(until.elementIsVisible(driver.findElement(By.id('someButton'))), 5000);
而不是
driver.wait(until.elementIsVisible(By.id('someButton')), 5000);
将解决问题。
更多信息
http://seleniumhq.github.io/selenium/docs/api/javascript/module/selenium-webdriver/lib/until.html https://github.com/SeleniumHQ/selenium/issues/2935