【发布时间】:2018-05-15 13:00:13
【问题描述】:
我已经安装了 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
$ 节点测试\js\test.js
(node:5648) UnhandledPromiseRejectionWarning: NoSuchElementError: Unable to locate element: *[id="login_login_username"]
在 Object.throwDecodedError (C:\xampp\htdocs\next-noregressiontests\src\test\javascript\node_modules\selenium-webdriver\lib\error.js:550:15)
在 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)
在
在 process._tickCallback (internal/process/next_tick.js:182:7) (节点:5648)UnhandledPromiseRejectionWarning:未处理的承诺拒绝。此错误源于在没有 catch 块的情况下抛出异步函数内部,或拒绝未使用 .catch() 处理的承诺。 (拒绝编号:1) (节点:5648)[DEP0018] DeprecationWarning:不推荐使用未处理的承诺拒绝。将来,未处理的 Promise 拒绝将使用非零退出代码终止 Node.js 进程。
我不明白问题出在哪里
【问题讨论】:
-
确保 id 值为“login_login_username”。错误表示不存在这样的元素。有时浏览器会花时间加载 DOM,在这种情况下也会发生此错误。请在单击该元素之前尝试等待。
-
能否请您提供部分 html 以检查此元素路径。