无法使用JavaScript Selenium Webdriver

时间:2018-12-13 16:15:28

标签: selenium selenium-webdriver selenium-chromedriver

我正在尝试对硒进行简单的测试而没有成功。

我有一个javascript配置测试:

chrome.config.js

var driver = new webdriver.Builder().
  .forBrowser('chrome')
  .build();


driver.get('http://www.google.com');

driver.findElement(By.name('btnI')).click();

我遇到以下错误:

  

(节点:5921)UnhandledPromiseRejectionWarning:WebDriverError:元素不可交互     (会议信息:chrome = 70.0.3538.77)     (驱动程序信息:chromedriver = 2.44.609551(5d576e9a44fe4c5b6a07e568f1ebc753f1214634),平台= Linux 4.15.0-42-通用x86_64)       在Object.checkLegacyResponse(/home/pablo/workspace/bricks-editor/node_modules/selenium-webdriver/lib/error.js:585:15)       在parseHttpResponse(/home/pablo/workspace/bricks-editor/node_modules/selenium-webdriver/lib/http.js:533:13)       在Executor.execute(/home/pablo/workspace/bricks-editor/node_modules/selenium-webdriver/lib/http.js:468:26)       在       在process._tickCallback(内部/进程/next_tick.js:188:7)   (节点:5921)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。引发此错误的原因可能是抛出了一个没有catch块的异步函数,或者是拒绝了一个.catch()无法处理的承诺。 (拒绝ID:1)   (节点:5921)[DEP0018] DeprecationWarning:已弃用未处理的承诺拒绝。将来,未处理的承诺拒绝将以非零退出代码终止Node.js进程。

这有什么问题吗?

我的设置:

节点版本:8.11.3

chromedriver版本:2.44.609551

操作系统:Ubuntu 18.0.4 LTS 64位

2 个答案:

答案 0 :(得分:1)

有两个具有相同@name的输入字段:第一个是隐藏的。您需要处理第二个(可见)一个:

driver.findElement(By.cssSelector('div.FPdoLc input[name="btnI"]')).click();

答案 1 :(得分:1)

经过一些测试,我可以通过以下更改完成代码工作。

var webdriver = require('selenium-webdriver'),
  By = webdriver.By,
  until = webdriver.until;

var driver = new webdriver.Builder()
  .forBrowser('chrome')
  .build();


driver.get('http://www.google.com');

var btnI;

driver.findElements(By.name('btnI')).then(function(list) {
  btnI = list[1];
  btnI.click();
});