如何使用JavaScript使用Selenium Web驱动程序API来定位后代元素?

时间:2018-12-17 18:16:09

标签: selenium selenium-webdriver selenium-chromedriver

我是Selenium Web驱动程序的新手,尝试定位DOM元素时遇到一些问题。

假设我有一堆<div class="column">...</div>,在里面,我有一堆<div class="text">...</div>

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

在我的代码下方

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 个答案:

答案 0 :(得分:1)

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

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

这将在类text的元素中找到所有类.column的元素。

而且,您可以使用nth-child()nth-of-type()或其他伪类通过选择器中的索引来获取元素,例如:

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