Java 如何通过在SeleniumWebDriver中搜索链接的文本来访问链接?
我在网页中有一个树结构的HTML文件层次结构 如图所示 HTML代码是Java 如何通过在SeleniumWebDriver中搜索链接的文本来访问链接?,java,selenium,xpath,selenium-webdriver,webdriver,Java,Selenium,Xpath,Selenium Webdriver,Webdriver,我在网页中有一个树结构的HTML文件层次结构 如图所示 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 clas
<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>
自动化(1)
在Selenium WebDriver中,有没有一种方法可以通过只搜索我不想使用XPath的文本来单击
自动化(1)
链接的原因是位置将发生变化,所以有没有方法通过文本找到它并单击它。XPath功能强大,您发现它不可靠,您没有正确使用它。请花点时间在家里
这是一个简单的问题解决方案,但可能还有许多其他事情需要考虑。例如,匹配标题和文本等
driver.findElement(By.xpath(".//span[text()='Automation (1)']")).click();
CSS选择器也功能强大、速度更快,比XPath更具可读性。但在您的情况下,它不支持按文本查找。按标题搜索效果很好
driver.findElement(By.xpath("//span[contains(@title,'Automation')]")).click();
2种方法
方法1:
按类名:
这里我们有文本自动化(1)的类名,即rtIn。
执行driver.findElement(按.className(“rtIn”))。单击()
方法2:
通过父级和类名的CSS选择器
父项的CSS选择器:。已选定
WebElement element1=driver.findElement(By.cssSelector(“.rtSelected”))
element1.className(“rtIn”)。单击()
方法3:
通过直接CSS选择器:
1.rtIn
2.rtSelected>.rtIn
最好使用第二个CSS选择器
driver.findelelement(通过.cssSelector(“.rtSelected>.rtIn”))。单击() 你能推荐一个我试过的代码driver.findElement(By.partialLinkText(“Automation”))。单击()@确保这只匹配一个元素。如果有其他元素具有相同的文本,则需要提供更多的HTML。上面的答案完全匹配。@Santhosh.S:不,这不是完整的代码。您需要为所有文件夹节点提供HTML。但请先尝试extact匹配,如果不起作用,请调试原因。的可能重复项