2016-09-21 60 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();