Codeception - 单击简单链接

时间:2017-03-17 10:07:24

标签: xpath codeception

如何通过Codeception <a href="/some_page.html">Some page</a> man?

点击简单链接AcceptanceTester
class_name: AcceptanceTester
modules:
    enabled:
      - WebDriver
      - \Helper\Acceptance
    config:
      WebDriver:
          url: 'http://mysite.local'
          browser: 'firefox'
          windowSize: '1024x768'

我正在尝试:

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

但获得下一条消息:

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

4 个答案:

答案 0 :(得分:1)

您使用的是错误的xpath,它应该是:

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

所以你在href前面缺少@。

请注意,如果您拥有此类链接的数量超过您可以使用此链接访问的第一个链接:

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

答案 1 :(得分: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>

答案 2 :(得分:0)

您可以在此处使用Locator类。请查看下面的代码段。我使用了相同但使用函数调用。考虑一下,我传递的元素包含来自我的cept文件的URL。

  

使用\ Codeception \ Util \ Locator; Class ClassName {

     

public function fun_name($ strSomeVar,$ selectorUrl){

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

}
     

}

这可能会对你有所帮助。

答案 3 :(得分:0)

希望这会对你有所帮助。我不确定你是否必须指出h3,但我很确定这会起作用。

$ I-&gt;点击(['xpath'=&gt;'// ul / li / h3 / a [@href =“/ some_page.html”]']);