我是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();
});
});
答案 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)'))