Selenium webdriver TypeError:element.isDisplayed不是函数

时间:2017-08-16 09:44:00

标签: 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/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加载页面可能会有所作为吗?

1 个答案:

答案 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