总是失败硒的基本例子

时间:2018-05-15 13:00:14

标签: selenium-webdriver

我已经安装了npm selenium-driver,现在我想尝试使用它。

我创建了一个js文件test.js

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

var driver = new webdriver.Builder()
  .usingServer("http://docker01.localhost:4444/wd/hub")
  .forBrowser('firefox')
  .build();

driver.get('http://demo.mahara.org');
driver.findElement(By.id('login_login_username')).then(function(links){
console.log('Found', links.length, 'Wiki links.' )
driver.quit();
});

从我的控制台发送此节点cmd

$ node tests \ js \ test.js

  

(node:5648)UnhandledPromiseRejectionWarning:NoSuchElementError:无法找到元素:* [id =“login_login_username”]
  at Object.throwDecodedError(C:\ xampp \ htdocs \ next-noregressiontests \ src \ test \ javascript \ node_modules \ selenium-webdriver \ lib \ error.js:550:15)
  at parseHttpResponse(C:\ xampp \ htdocs \ next-noregressiontests \ src \ test \ javascript \ node_modules \ selenium-webdriver \ lib \ http://js:542:13)
  在Executor.execute(C:\ xampp \ htdocs \ next-noregressiontests \ src \ test \ javascript \ node_modules \ selenium-webdriver \ lib \ http.js:468:26)
  在   at process._tickCallback(internal / process / next_tick.js:182:7)   (node:5648)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。这个错误源于在没有catch块的情况下抛出异步函数,或者拒绝未使用.catch()处理的promise。 (拒绝ID:1)   (节点:5648)[DEP0018]弃用警告:不推荐使用未处理的拒绝承诺。将来,未处理的承诺拒绝将使用非零退出代码终止Node.js进程。

我无法理解问题在哪里

2 个答案:

答案 0 :(得分:0)

此元素

  

[ID =" login_login_username"]

试试这个:

[@id="login_login_username"]

答案 1 :(得分:0)

您需要等待加载页面后元素出现。因此,在driver.get(...)之后,添加以下内容:

driver.wait(until.elementLocated(by.id('login_login_username')), 10000, 'Cannot find element');

这将继续寻找元素,并在10秒后超时,如果它没有找到它。