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

如何使用JavaScript通过selenium web驱动程序API定位子元素?

敖和韵
2023-03-14

我是Selenium web驱动程序的新手,在查找DOM元素时遇到了一些问题。

假设我有一堆<代码>

我的问题是:获取特定后代并单击它的更好方法是什么?

低于我的代码

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


driver.get('http://www.localhost:4000/');

var columns = [];

driver.findElements(By.css('.column')).then(function(list) {
  columns = list.slice();

  columns[1].findElements(By.css('.text')).then(function(textList) {
    textList[0].click();
  });

});

共有1个答案

姬凡
2023-03-14

您可以组合选择器并执行:

driver.findElements(By.css('.column .text'))

这将在具有class. lie的元素中定位具有classtext的所有元素。

并且,您可以使用nth-child()、nth-of-type()或其他伪类通过选择器内的索引访问元素,例如:

driver.findElements(By.css('.column:nth-of-type(1) .text:nth-of-type(2)'))

 类似资料:
  • 问题内容: 我试图单击此页面上的元素: 在这一点上,我想单击“现金流量”,“资产负债表”或“季度”。我知道这些按钮已加载,因为我可以使用BeautifulSoup从页面源中提取它们。但是,当我尝试使用Selenium时: 全部返回“无法定位元素”,除了“季度”返回一个元素,但它位于图上方的一个元素而不是我感兴趣的表格上方的一个元素。 我认为这是由于位于错误的iframe中,而我找到了所有ifram

  • 我是的新手。试图定位一个元素并单击它。 但不断低于错误:

  • 我是Selenium新手:我有这个源代码,正在尝试使用带有selenium web驱动程序的xpath单击一个按钮。这是尝试单击的按钮(html中的最后一行): 我使用这个xpath:,它让我无法找到元素。 知道我为什么以及如何去做吗?

  • 问题内容: 我正在尝试对大多数商业自动化工具中常见的基于Selenium的框架实施“对象选择器”。为此,我正在使用Javascript命令在鼠标位置找到该元素,但没有得到我期望的元素。 如果我使用的是ChromeDriver或InternetExplorerDriver,则脚本始终返回标头对象。无论我查看什么网页或鼠标的位置。尽管听起来好像脚本采用的是坐标0,但0而不是鼠标位置,我已经确认Curs

  • 新的Google chrome更新会在浏览器中出现这样的信息:“您正在使用不受支持的命令行标志:--Ignore-Certifice-Errors。稳定性和安全性将受到影响。” 根据我在selenium bug报告中读到的内容,临时解决方案是启动webdriver

  • 问题内容: 我试图通过selenium的点击功能自动下载一些链接,并且我正在使用 chrome webdriver 和python作为编程语言。 如何 通过python程序 选择下载目录 ,以使它不会在默认的Downloads目录中下载。我找到了适用于Firefox的解决方案,但是每次单击链接时Chrome都不会弹出下载对话框。 问题答案: 更新2018: 它不是有效的Chrome命令行开关,请参