找不到具有JavaScript Selenium web驱动程序的web元素



我试图用硒进行一个简单的测试,但没有成功。

我有一个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(未处理的PromiseRejectionWarning:WebDriverError:元素不可交互(会话信息:chrome=70.0.3538.77((驱动程序信息:chromedriver=2.44.609551(5d576e9a44fe4c5b6a07e568f1ebc753f1214634(,平台=Linux 4.15.0-42-generic x86_64(在Object.checkLegacyResponse(/home/pablo/workspace/brick-editor/node_modules/selenium-webdriver/lib/error.js:585:15(在parseHttpResponse(/home/pablo/workspace/blocks-editor/node_modules/selenium-webdriver/lib:http.js:533:13(在Executor.execute(/home/pablo/workspace/bricks-editor/node_modules/selement-webdriver/lib:http.js:468:26(在正在处理中_tickCallback(internal/process/next_tick.js:188:7((节点:5921(未处理的PromiseRejection警告:未处理的promise rejection。此错误源于在没有catch块的异步函数内部抛出,或者拒绝了未使用.catch((处理的promise。(拒绝id:1((节点:5921([DEP0018]不推荐使用警告:不推荐使用未经处理的承诺拒绝。将来,未处理的promise拒绝将使用非零退出代码终止Node.js进程。

这里可能出了什么问题?

我的设置:

节点版本:8.11.3

chromedriver版本:2.44.609551

操作系统:Ubuntu 18.0.4 LTS 64位

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

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();
});

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

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

相关内容

最新更新