2017-03-17 5 views
0

私は簡単なリンク<a href="/some_page.html">Some page</a>をクリックすることができますCodeception AcceptanceTester男?コードシェア - シンプルリンクをクリック

public function somePage(AcceptanceTester $I) 
{ 
    $I->amOnPage('/'); 
    $I->click('Some page', '//a[href="/some_page.html"]'); 
} 

が、次のメッセージを取得:

class_name: AcceptanceTester 
modules: 
    enabled: 
     - WebDriver 
     - \Helper\Acceptance 
    config: 
     WebDriver: 
      url: 'http://mysite.local' 
      browser: 'firefox' 
      windowSize: '1024x768' 

私がしようとしている

... 
CSS or XPath element with '//a[href="/some_page.html"]' was not found. 
... 

答えて

0

このHTML構造です:

<section id="products-anchor" class="products-list"> 
    <div class="container"> 
     <ul class="products"> 
      *** 
      <li class=""> 
       <h3> 
        <a href="/some_page.html"> Some page </a> 
       </h3> 
       <p> 
        <a href="/some_page.html"></a> 
       </p> 
       <p> 
        <a href="/some_page.html">Text for some page...</a> 
       </p> 
       <p></p> 
      </li> 
      *** 
     </ul> 
    </div> 
</section> 
0

することはできここでは単にユーザーロケータクラス。以下のスニペットを確認してください。私は同じを使用しているが、機能的な呼び出しを使用しています。私のceptファイルからのURLを含む要素を渡していると考えてください。

\ Codeception \ Util \ Locatorを使用します。クラスクラス名{

パブリック関数fun_name($ strSomeVar、$ selectorUrl){

$I->see($strSomeVar, Locator::href($selectorUrl)); 
    $I->click(Locator::href($selectorUrl)); 

} 

}

が、これはあなたに参考になりますように。あなたは間違ったXPathを使用している

0

、それは次のようになります。HREFの前で

$I->click('Some page','//a[@href="/some_page.html"]');

だから、あなたが不足しています@。

あなたはこれで最初のものにアクセスできるより、この種のより多くのリンクを持っている場合だけに言及する:これはあなたを助ける

$I->click('Some page','(//a[@href="/some_page.html"])[1]'); 
0

希望。私はあなたがh3を指示しなければならないかどうかはわかりませんが、これはうまくいくと確信しています。

$ I-> click(['xpath' => '//ul/li/h3/a[hht/some_page.html "]']);

関連する問題