在搜索第n个点击时找不到Selenium的现有元素

时间:2012-02-14 14:27:49

标签: java xpath selenium

我的DOM树中有多个元素,具有以下结构:

<span test-id="list"  id="rLGMqz">bla</span>

因为id是由框架生成的,所以我定义了一些我在selenium中搜索的test-id。查找这些元素的xpath代码如下:

//*[@test-id='list']

这样可行,但selenium.getText(path)仅返回第一个span元素的内容。我现在想尝试这样的事情:

(//*[@test-id='list'])[2]

找到第二个元素但是selenium会抛出异常(找不到元素)。即使我只是将原始的searchterm放在parantheses中(例如:(// * [@ test-id ='list'])),也会抛出异常。我使用firebug $ x()方法计算了表达式,一切似乎都在那里工作,但是一旦我在java中使用selenium尝试相同的表达式,它就会崩溃。

2 个答案:

答案 0 :(得分:2)

好的,我终于找到了一个有效的解决方案。

Selenium期望在xpath表达式的开头加上“/”。如果没有这样的东西(在我的情况下有一个'(')你必须在xpath前加上'“xpath ='。

就我而言:

selenium.getText("xpath=(//*[@test-id='list'])[2]")

答案 1 :(得分:0)

selenium.getText("//span[@test-id='list'][2]");将是完美的; - )