请帮我为以下href创建Xpath。我使用Selenium webdriver并且只有IE浏览器。以下是HTML: 需要Xpath:a href =“javascript:OnEventQueue();”>。 我只能使用IE浏览器,需要点击此链接。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML Transitional//EN"><META http-equiv="Content-Type" content="text/html; charset=windows-1252">
<html>
<body>
<form name="runevent1" action="/epace/epace-cgi/eglcgids.exe?sessionid=" method="post" btnSubmit="javascript:preSumbit()" EParams="http://vaim1-apt-120/epace/epace-cgi/eglcgids.exe?sessionid=&Action=runevent1&EventType=&EventInst=#" EParamOptions="http://vaim1-apt-120/epace/epace-cgi/eglcgids.exe?sessionid=&Action=runevent1&EventType=&EventInst=#">
<table width="100%" align="center" border="0">
<tbody>
<tr class="topMenu">
<td align="right">
<span id="idSpanActionLinks">
<a href="javascript:OnEventQueue();">
<font class="topMenu">Event Queue</font>
</a>
</span>
</td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
答案 0 :(得分:1)
使用以下算法选择元素。
element[attribute(^|*|$|~)='attribute value']
//element[(@attribute|contains|starts-with|ends-with(@attribute, 'value'))='value'
xpath有点丑陋,绝对不正确,但CSS算法是正确的。
如果您想要匹配任何属性,包括您想要的href
,请使用此算法。
问自己这些问题:
在您的情况下,#1的答案是<a>
。对#2号的回答是href
。答案#3,可能不是,因为可能会有更多href
这样的问题。而ID,通常是独一无二的。 (毕竟它被称为标识符)。您可以做的是查看父级并使用它的ID。
在CSS中:span#idSpanActionLinks > a
会工作得很好。 (* #
只是id see here)
在Xpath中://span[@id='idSpaceActionLinks']/a
发表评论后,由于您希望匹配href
,请转到:
a[href*='OnEventQueue']
//a[contains(@href, 'OnEventQueue')]
两者都有效。
请注意,这两个陈述均以英文表示:
找到一个
<a>
元素,其属性href
包含值OnEventQueue
答案 1 :(得分:0)
XPath并不是唯一的。对于不同级别的“精度”,您可以使用不同的路径。
E.g:
//*[@id="idSpanActionLinks"]/a