2016-09-21 39 views
0

逗人,硒PHP - 与XPath findElement,复杂的XPath不工作

我面临着以下XPath如果$ POS大于1

纸条,上面没有返回元素的问题有超过1个格[@类= “面板标题” 在 形式[包含(@Action, “/ myaction?”)]

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

任何想法有什么错我的XPA那么?

由于提前, 梅西

+0

中的XPath似乎ok.Please添加如果possible.Have你尝试了XPath的在表单的HTML代码段浏览器吗? – lauda

回答

0

检查,如果你只有一个与动作单链路,只搜索
//a[contains(@onclick, "do_something")],看看你是否找出do_something,使是独一无二的。
避免使用[number],因为如果任何一个居住区div消失,它可能会很容易破裂。

如果您在$pos大于1时出现问题,表示获取此条件的div与其他任何div都不在同一水平。

+0

每个div [@ class =“panel-heading”]在DOM树中处于同一级别。对于每一个,只有1个[包含(@onclick,“do_something”)]波纹管。 – user2166417

0

你应该尝试使用(),如果你在你的xpath用如下指标: -

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