当前位置: 首页 > 知识库问答 >
问题:

找不到具有JavaScript Selenium Webdriver的web元素

严元白
2023-03-14

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

我有一个javascript配置测试:

铬。配置。js

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


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

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

我发现以下错误:

(节点:5921)UnhandledPromiseRejingWarning:WebDriverError:元素不可交互(会话信息:chrome=70.0.3538.77)(驱动程序信息:chrome=2.44.609551 (5d576e9a44fe4c5b6a07e568f1ebc753f1214634),平台=Linux4.15.0-42-通用x86_64)在Object.checkLegacyACK(/home/pablo/workspace/boking-编辑器/node_modules/selenium-webDrive/lib/error.js:585: 15)在parseHttp响应(/home/pablo/workspace/boking-编辑器/node_modules/selenium-webDrive/lib/http.js:533: 13)在Executor.execute(/home/pablo/workspace/boking-编辑器/node_modules/selenium-webDrive/lib/http.js:468: 26)在进程。_tickCallback(内部/进程/next_tick.js:188: 7)(节点:5921)UnhandledPromiseRejingWarning:未处理的promise拒绝。此错误的起因是将异步函数抛入没有捕获块的内部,或者是拒绝未用. cat()处理的promise。(拒绝id: 1)(节点: 5921)[DEP0018]DeprecationWarning:未处理的promise拒绝已被弃用。将来,未处理的promise拒绝将以非零的退出代码终止Node.js进程。

这里怎么了?

我的设置:

节点版本:8.11.3

chromedriver版本:2.44.609551

操作系统:Ubuntu 18.0.4 LTS 64位

共有2个答案

林正平
2023-03-14

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

driver.findElement(By.cssSelector('div.FPdoLc input[name="btnI"]')).click();
焦兴为
2023-03-14

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

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();
});
 类似资料:
  • 我是新来的。如果问题重复,很抱歉,但我没有找到解决方法。 我有一个问题--我无法使用Xpath定位元素,但我使用ID定位器定位它没有问题。见附件截图。这一问题不仅针对这一要素,而且也针对所有要素。看来Xpath根本不起作用。 我正在使用Appium 7.3.0(试用过不同版本),UIAutomator2,方法是在模拟器上设置,Android 8.1功能。 null 此外,我在需要的地方使用了和,因

  • 我是硒的新手,请帮帮我。整个代码: 如何为以粗体突出显示的元素选择xpath?我试过很多例子,但不幸的是没有一个像预期的那样有效。任何帮助都会很好。

  • 在试图找出如何定位一组特定的Web元素时,我遇到了这个问题,我想知道我是否可以做同样的操作,只是它只给我包含特定属性的后代元素。 为了澄清,我知道我可能能够过滤它,但我正在寻找一种不过滤的方法。 此外,我使用的是java,作为web驱动程序,我使用的是chrome驱动程序(我使用Selenium来实现这一点,我不知道这是否明显,因为这是我迄今为止学习的唯一web控制工具……) 感谢前面的回答!

  • 我想从这个网站上提取红色标记的信息。 本站的html文本由以下图片呈现。我要提取的信息再次被红色标记。 问题是我找不到带有class属性“find-元素”的div元素。我的代码看起来像这样 如果有人能帮我,那就太好了。 谢谢。

  • 有人能告诉我为什么下面的代码不返回表情符号属性吗... 但是下面的代码将返回一个表情符号属性... 我知道我已经将滚动添加到第二个代码中,所以它会查看整个页面并返回我要查找的元素。但除此之外,它们或多或少是相同的。我可以每隔几秒钟运行第一个代码,它永远找不到表情符号元素。它会发现代码和optCriteria没有问题,并将它们作为tradeCriteria打印在一起,但即使它在那里,它也永远找不到表