如何通过在Selenium WebDriver中搜索其文本来访问该链接?

时间:2014-03-14 04:12:42

标签: java selenium xpath selenium-webdriver webdriver

我在网页的树结构中有一个HTML文件层次结构 如图所示。

enter image description here

HTML代码

<div class="rtMid rtSelected">
    < span class="rtSp"/>
    < img class="rtImg" alt="Automation" src="http://192.168.1.6/eprint_prod_3.8/images/StoreImages/close_folder.png"/>
    < span class="rtIn" title="Automation">Automation (1)</span>
</div>

在Selenium WebDriver有一种方法可以点击Automation (1)链接,只搜索我不想使用的文本XPath原因是位置会改变所以有没有办法通过它找到它发短信并点击它。

3 个答案:

答案 0 :(得分:2)

XPath功能强大,你发现它并不可靠,你没有正确使用它。请花一些时间在XPath Tutorial

这是您问题的简单解决方案,但您可能需要考虑许多其他事项。例如。匹配标题和文字等。

driver.findElement(By.xpath(".//span[text()='Automation (1)']")).click();

CSS选择器也比XPath更强大,更快,更易读。但在你的情况下,它并不支持按文字查找。

答案 1 :(得分:0)

按标题搜索效果很好

driver.findElement(By.xpath("//span[contains(@title,'Automation')]")).click();

答案 2 :(得分:0)

2方法

方法1:

按班级名称:

这里我们有文本自动化(1)的类名,即rtIn。 执行driver.findElement(By.className(“rtIn”))。click();

方法2:

通过父级和类名的CSS选择器

父级的CSS选择器:.rtSelected

WebElement element1 = driver.findElement(By.cssSelector(“。rtSelected”)) element1.className( “RTIN”)点击();

方法3:

通过直接CSS选择器: 1.rtIn 2. .rtSelected&gt; .rtIn

最好使用第二个CSS Selector

driver.findElement(By.cssSelector(“。rtSelected&gt; .rtIn”))。click();