我被困在调查和改进方面需要帮助。
我正在尝试将所有<a>
标记与年度报告一起收集为partial text
,然后循环,因为它们最初位于在表格内(2nd column per row
)。
以下是我计划执行的流程:
<a>
代码后,新窗口将pop up
<a>
标记)并重复下面的代码是我当前的进度,但它完全不起作用。我仍然无法点击第一个元素。
var reportLinks = driver.findElements(By.partialLinkText('Annual Report'));
for(var i = 0; i < reportLinks.length; i++){
reportLinks[i].click();
}
答案 0 :(得分:0)
这就是我如何完成这个
//This will get you how many elements are present
var reportLinks = driver.findElements(By.xpath('//tr/td/a[contains(text(),'Annual Report')]'));
//This will click on each element
for(var i = 0; i < reportLinks.length; i++){
driver.findElement(By.xpath('//tr[' + i + ']/td/a[contains(text(),'Annual Report')]')).click();
}
原因是Annual Report元素不是元素的父容器。
答案 1 :(得分:0)
我能够使用以下代码使其工作:
for (var i = 1; i < 51; i++) {
var element = driver.findElement(By.xpath('//*[@id="dataList"]/table/tbody/tr[' + i + ']/td[1]/a'));
driver.executeScript("arguments[0].click();", element);
}
我只是通过copied the xpath
Google Chrome's
功能在页面上Inspect Element
,并通过argument
传递executeScript
。
您可以通过此链接了解如何:Is there a way to get the xpath in google chrome?
非常感谢!