如何使用java lang在selenium中找到具有href作为java脚本函数的链接

时间:2018-06-18 07:13:33

标签: selenium

需要找到库和颜色 enter image description here

你好, 我是硒的新手。请建议如何使用selenium找到图像中突出显示的链接 我试过了linktext()但是没有用。

这是HTML:

<DIV class=BlueBox><DIV class=BlueBoxHeader><IMG width=4 height=4 src="/Windchill/rfa/images/blue_topleft.gif"></DIV> <DIV class=BoxContent><!-- Start Title --> <DIV style="OVERFLOW: hidden"> <TABLE width="90%" cellSpacing=0 cellPadding=0> <TBODY> <TR> <TD class=BlueHeader style="PADDING-LEFT: 10px"><A href="javascript:toggleExpandableDiv('librariesContent', 'librariesContentIcon');"><SPAN style="PADDING-RIGHT: 4px"><IMG id=librariesContentIcon src="/Windchill/netmarkets/images/expand_tree.png" border=0 valign="bottom"></SPAN>Libraries</A> </TD></TR >

谢谢!

4 个答案:

答案 0 :(得分:0)

试试这个,

//td[@class='BlueHeader']//a

答案 1 :(得分:0)

linkText 适用于标记之间的文字

我可以看到部分linkText,它是

代码:

driver.findElement(By.partialLinkText("Libraries")).click();  

更新1:

你也可以尝试这个xpath:

//a[contains(@href,'javascript:toggleExpandableDiv(')]  

代码将是:

driver.findElement(By.xpath("//a[contains(@href,'javascript:toggleExpandableDiv(')]")).click();  

更新2

由于OP已经提到有一个可用的框架集,并且存在所需的元素。

您必须切换驱动程序的焦点才能与所需的元素进行交互。因为您可以使用此代码:

driver().switchTo().frame(driver().findElement(By.name("sidebarframe"))); 
driver.findElement(By.partialLinkText("Libraries")).click(); 

答案 2 :(得分:0)

您可以使用 Xpath

//a[normalize-space()='Libraries']

答案 3 :(得分:0)

您可以使用此xpath选择器选择这三个突出显示的元素:

"//a[contains(.,'Libraries')] | //a[contains(.,'Calendar')] | //a[contains(.,'Color')]"

它将列出3个元素

它适合你。 如果出现任何问题,请告诉我。

逻辑是,如果你想获得这些元素,你必须使用“OR”条件。

按照其他答案的建议检查iframe是否存在,然后尝试使用此选择器获取元素