2

我想在 Selenium IDE 中使用的 Xpath 有问题。首先很奇怪,当我右键单击元素时,Selenium Options 没有出现。

其次,如果我用 Firebug 检查元素并复制 XPath,结果是这样的:

//html/body/div/div[4]/new:form/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a

如果我在 Selenium 中插入此路径并单击“查找”,我会得到找不到定位器的消息。当我运行它时,它说:[error] invalid Xpath[2]:(then the path)

发现没有问题

//html/body/div/div[4]/

我认为问题出在“新:表单”部分,但我不明白为什么?!

我无权访问代码。但是当我删除萤火虫中的“新”时,它可以工作。这个问题有什么解决办法吗?谢谢

4

3 回答 3

1

在编写此问题时,Selenium 中没有适当支持 XPath 表达式中的命名空间。然而,这已经改变了。一段时间以来(大约 2015 年 3 月),您可以使用文档中出现的命名空间前缀来选择元素。

在此之前,这要困难得多,您需要像接受的答案中那样的解决方案。现在您可以使用原始问题中给出的表达式:

//html/body/div/div[4]/new:form....
于 2015-09-17T17:34:25.220 回答
0

在 Firebug 提供的 XPath 元素form中,定义在某个命名空间中,Firebugnew用作前缀。我不知道 Selenium 是否支持带有命名空间的 XPath。无论如何,您可以稍微修改给定的 XPath,使用*而不是new:form,即:

//html/body/div/div[4]/*[local-name(.) = 'form']/div[3]/table/tbody/tr/td/table/tbody/tr[17]/td[3]/a
于 2012-10-31T21:21:11.787 回答
0

您可以安装Firepath,它是Firebug 的扩展。这将为您提供更清晰的 xpath。

于 2012-11-01T04:50:23.930 回答