Selenium PHP - xpath的findElement,复杂的xpath无效

时间:2016-09-21 05:59:32

标签: php xml selenium xpath

逗人,

我遇到以下xpath的问题,如果$ pos大于1,则不返回任何元素。

  

请注意,有超过1个div [@ class =“panel-heading”]   form [contains(@ action,“/ myaction?”)]

$this->webdriver->findElement(WebDriverBy::xpath('//form[contains(@action, "/myaction?")]//div[@class="panel-heading"][' . $pos . ']//a[contains(@onclick, "do_something")]'))->click();

知道我的xpath有什么问题吗?

提前致谢, 梅西

2 个答案:

答案 0 :(得分:0)

检查您是否只有一个指向该操作的链接,仅搜索中//a[contains(@onclick, "do_something")]并查看您是否识别出do_something制作的唯一链接。
避免使用[number],因为如果任何住所div消失,它可能会破坏。

如果$pos大于1时遇到问题,则表示获得此条件的div与其他任何div的级别不同。

答案 1 :(得分:0)

如果您使用()中的索引,则应尝试使用xpath,如下所示: -

$this->webdriver->findElement(WebDriverBy::xpath('(//form[contains(@action, "/myaction?")]//div[@class="panel-heading"])[' . $pos . ']//a[contains(@onclick, "do_something")]'))->click();