XPath 在 IE 和 Firefox 中不同。为什么?
·
问题:XPath 在 IE 和 Firefox 中不同。为什么?
我使用 Firebug 的 Inspect Element 来捕获网页中的 XPath,它给了我类似的东西:
//*[@id="Search_Fields_profile_docno_input"]
我在 IE 中使用 Bookmarklets 技术来捕获同一对象的 XPath,我得到了类似的东西:
//INPUT[@id='Search_Fields_profile_docno_input']
请注意,第一个没有 INPUT 而是有一个星号 (*)。为什么我得到不同的 XPath 表达式?我在测试中使用哪一个是否重要,例如:
Selenium.Click(//*[@id="Search_Fields_profile_docno_input"]);
或者
Selenium.Click(//INPUT[@id='Search_Fields_profile_docno_input']);
解答
*[Idu003d] 表示它可以是任何元素,而第二个明确提到 selenium 仅查找 ID 为 Search_Fields_profile_docno_input 的 INPUT 字段。由于以下原因,第二个 xpath 更好
1.使用*查找元素需要更多时间,因为所有元素的ID都应该匹配。
- 如果您的 HTML 代码没有“写得好”,则可能有其他元素具有相同的 id,这可能会导致您的测试失败。
更多推荐
所有评论(0)