我正在使用selenium的webdriver.find_element_by_link_text('searchterm')来获取webElement。然后,我可以通过使用带有'href‘的webElement.get_attribute('href')来找到XPath值。我能够通过href找到元素本身:
.//*[@href=webElement.get_attribute('href')]问题是,这不是我想要点击的链接,我想点击的链接的文本是“google reader”,而且还有三栏:
<tr id="AB2Xq4gXoer9sCEEr-rRcZjVz1p021-gdypaX-U" class="ACTIVE">
<td class="checkbox">
<td class="alert-type" colspan="2">
<a href="RETRIEVABLE ATTRIBUTE">FOUND TEXT</a>
</td>
<td class="alert-volume">Only the best results</td>
<td class="alert-frequency">As-it-happens</td>
<td class="alert-delivery">
<a href="THE ELEMENT I WANT TO CLICK">Google Reader</a>
<a href="another link">
</td>这里的问题是有一系列的"google阅读器“链接,所以这个术语不能使用
有没有可能通过path向下导航到我想要的元素/链接?
我一直在试着找到父母,然后再找到合适的孩子,但我就是没能做到。
感谢给予的任何时间和帮助!!
由衷地
发布于 2012-11-01 18:00:44
将a的text()与字符串进行比较:
.//a[text()="Google Reader"]要将找到的文本转换为相应的Google Reader,请使用.. (父级)和following-sibling
.//a[text()="FOUND TEXT"]/../following-sibling::td/a[text()="Google Reader"]发布于 2012-11-01 18:25:18
好吧,我会尝试以下几种方法:
String xPathLink="//a[contains(text(),'Google Reader')]"
List<WebElement> a=driver.findElements(By.xpath(xPathLink));
a.get(0).click();
//or a.get(1).click();
//or a.get(2).click();这取决于包含'Google Reader‘的元素列表中的顺序
firebug会给你一个关于你需要点击的元素的提示。

https://stackoverflow.com/questions/13174558
复制相似问题