ita*_*ato 4 xpath phpunit selenium-rc
关于XPath中的第N个元素已经有了一些讨论:
我正在使用Selenium和PHPUnit进行功能测试.我的问题是在具有大表单的页面上,第N个选择器不起作用.我有80个输入字段(使用Selenium的getXpathCount('// input')调用来获取确切的数字) - 我想迭代80个字段并输入一些文本.我已经尝试过但不工作(N是索引变量):
//input[N]
//input[position()=N]
input[N]
(//input)[N]
(.//input)[N]
css=input:nth-of-type(N)
Run Code Online (Sandbox Code Playgroud)
以及上述所有混合物.它通常会触发一个Exception说:在N = 2时找不到元素.我为浏览器尝试了几个XPath工具,因此像Chrome中的XPathEvaluator这样的原生扩展 - 几乎都给了我正确的结果.所以看起来Seleniums XPath解析器的工作方式有点不同.
你怎么看?我想念一件大事吗?
更新:这里你是我的解决方案:getAllFields():http://release.seleniumhq.org/selenium-remote-control/0.9.0/doc/java/com/thoughtworks/selenium/DefaultSelenium.html#getAllFields ()和然后我迭代.
它实际上并没有解决原来的问题,所以我仍然对答案感兴趣.
谢谢!
Mic*_*Kay 10
(//input)[15]
返回文档中的第15个输入元素
//input[15]
返回作为其父元素的第15个输入子元素的每个输入元素.
所以你的一些表达至少是不正确的.但它们并非都不正确,所以我不知道它为什么不适合你.
小智 -2
我不使用 PHPUnit,但我喜欢 XPath。
在 Safari 检查器的搜索字段中:
//input[N]
Run Code Online (Sandbox Code Playgroud)
或范围:
//div/input[N] means second input in a div
(//div/input)[N] means second div that has an input (select the first input)
Run Code Online (Sandbox Code Playgroud)