2013-09-30 44 views
0

我是Selenium Webdriver的新手。我一直在使用Firebug & Firepath为web元素生成xpath(复制粘贴给定的xpath),但是我在使用这样的xpaths时遇到了问题(例如“Xpath无法评估为web元素”)。硒中的通用Xpath

请帮我一个Webelement的XPath来创建一个灵活的&通用的XPath下面的例子:

<input type="text" maxlength="15" length="40" value="" name="ST_ACK_NUM"/> 
+0

不要使用从'firebug'得到的**绝对**'xpath',对'html'的小修改可能会导致'xpath'不再有效。 –

+1

嗨。使用firepath生成的xpath是一个非常糟糕的主意,因为firepath会根据位置生成xpath。看看这个博客http://www.guru99.com/accessing-links-tables-selenium-webdriver.html在xpath上提供了一些很好的信息。 – Vinay

回答

2

喜欢的人说,在评论这是更好地创造一个更相对路径你的元素。也许你可以发布更多的输入,以便更有效地创建XPath。

为了得到一个绝对的XPath输入你可以这样做:

//input[@name='ST_ACK_NUM'] 

以上的XPath将完整的源代码搜索到所有<input>元素,其中,当你看属性name等于值ST_ACK_NUM

您源也许你可以调整XPath并添加更多的依赖关系。例如,如果你输入的样子:

<div class="DivClass"> 
    <form name="FormName"> 
    <input type="text" maxlength="15" length="40" value="" name="ST_ACK_NUM"/> 
    </form> 
</div> 

你可以使用XPath的,如:

//div[@class='DivClass']/form[@name='FormName']/input[@name='ST_ACK_NUM'] 

这也将找到<input>元素,但有更多的依赖性。

+0

我觉得你错过了'@'符号的表达方式,比如'@ class','@ name' .. –

+0

Pfff确实是:S。调整后的评论 –

+0

非常感谢。 。答案很有用 –