我想在Selenium IDE中使用Xpath有问题。 首先,很奇怪,当我右键单击元素时,Selenium选项不会显示。
其次,如果我使用Firebug检查元素并复制XPath,结果是:
//html/body/div/div[4]/new:form/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a
如果我在Selenium中插入此路径,请单击“查找”,我会得到找不到定位器的按摩。 当我运行它时说:[错误]无效的Xpath [2] :(然后是路径)
找到
没问题//html/body/div/div[4]/
我认为问题是“新的:形式”部分,但我不知道为什么?!
我无法访问代码。但是,当我删除萤火虫中的“新”时,它才有效。 这个问题有什么解决方案吗? 感谢
答案 0 :(得分:1)
在编写此问题时,Selenium中没有对XPath表达式中的命名空间提供适当的支持。但是,that has since been changed。从某个时间(around March 2015)开始,您可以使用文档中出现的名称空间前缀来选择元素。
在此之前,它有点困难,你需要像accepted answer这样的解决方案。现在您可以使用原始问题中给出的表达式:
//html/body/div/div[4]/new:form....
答案 1 :(得分:0)
在Firebug元素form
提供的XPath中,Firebug使用new
作为前缀。我不知道Selenium是否支持带有命名空间的XPath。无论如何,您可以使用*
而不是new:form
稍微修改给定的XPath,即:
//html/body/div/div[4]/*[local-name(.) = 'form']/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a
答案 2 :(得分:0)
您可以安装 Firepath ,它是Firebug的扩展名。这样可以为您提供更清晰的xpath。