我的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尝试相同的表达式,它就会崩溃。
答案 0 :(得分:2)
好的,我终于找到了一个有效的解决方案。
Selenium期望在xpath表达式的开头加上“/”。如果没有这样的东西(在我的情况下有一个'(')你必须在xpath前加上'“xpath ='。
就我而言:
selenium.getText("xpath=(//*[@test-id='list'])[2]")
答案 1 :(得分:0)
selenium.getText("//span[@test-id='list'][2]");
将是完美的; - )