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 >
谢谢!
答案 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是否存在,然后尝试使用此选择器获取元素