2016-09-21 6 views
0

ディアーズ、セレンPHP - のXPathによってfindElement、複雑なXPathは

を働いていないの$ posが1

ノートよりも大きい場合、私は何の要素を返していない次のXPathでの問題に直面しています1つの以上のdiv [@クラス= "パネルの見出しは"] フォーム[含まれています(@action、 "/ myaction?")]であり

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

私のXPAと間違って何任意のアイデアth?あなたがそのアクションでただ1つのリンクを持っている場合、唯一の
//a[contains(@onclick, "do_something")]を検索し、あなたがユニークであることを確認do_somethingを特定するかどうかを確認し、事前に

おかげで、 ライオネル

+0

XPathはあなたがでXPathのを試してみましたpossible.Have場合、フォームのHTMLスニペットを追加ok.Pleaseようですブラウザ? – lauda

答えて

0

チェック。
[number]は避けてください。abode divのいずれかがなくなると簡単に破損する可能性があります。

$posは1がこの条件を取得divが他のdivと同じレベルではないことを意味よりも大きい場合、あなたが問題を取得する場合。

+0

すべてのdiv [@ class = "panel-heading"]はDOMツリーの同じレベルにあります。そしてそれぞれには、1つの[contains(@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();