2

「ThenIpress」(ボタンの場合)または「ThenI follow」(リンクの場合)を使用しようとすると、フッター内のアイテムの正規表現がエラー「element / link with id | link|nameが見つかりませんでした。」として失敗します。例私はこの公開サイトでこの異常を見つけました:earthdata.nasa.govサイト(私たちのサイトはまだアクティブではありません)。画面の左側にある「フィードバック」と書かれたボタンはクリックできません(原文のまま)。

セレン2.29.0サーバーに対してテストを実行しています。上記の「フィードバック」ボタンなどのリンクを見つけて「クリック」できるように、ミンクを拡張するにはどうすればよいですか?

4

1 に答える 1

8

ID を使用してリンクをクリックする代わりに、XPath を使用してリンクをクリックすることができます。XPath は DOM 内のオブジェクトを識別する普遍的な方法であるため、常に機能します。

Behat を使用したことがない方は、このリンクを使用して詳細をお読みください。これは基本的に、Selenium のツールのラッパーです。

http://mink.behat.org/

これを使用して、Selenium Web 自動化テスト サイトにアクセスします。

http://docs.seleniumhq.org/download/

編集:

Ian: MacGyver の Pointer に感謝します ここに解決策があります:

/** Click on the element with the provided xpath query
 *
 * @When /^I click on the element with xpath "([^"]*)"$/
 */
public function iClickOnTheElementWithXPath($xpath)
{
    $session = $this->getSession(); // get the mink session
    $element = $session->getPage()->find(
        'xpath',
        $session->getSelectorsHandler()->selectorToXpath('xpath', $xpath)
    ); // runs the actual query and returns the element

    // errors must not pass silently
    if (null === $element) {
        throw new \InvalidArgumentException(sprintf('Could not evaluate XPath: "%s"', $xpath));
    }

    // ok, let's click on it
    $element->click();

}
于 2013-03-03T07:36:30.827 に答える