Codeception:我可以看到一个链接,但无法点击它

时间:2015-06-27 16:58:11

标签: selenium xpath codeception acceptance-testing

我正在学习Codeception,并遇到了一些我认为很奇怪的事情。

// This works
$I->see('Secure Check Out', '(//a[contains(text(),"Secure Check Out")])[2]');

// This does not
$I->click('Secure Check Out', '(//a[contains(text(),"Secure Check Out")])[2]');

无法点击“安全签出”,“(// a [包含(文本(),”安全签出“)])[2]”: 页面上未找到链接或按钮或CSS或XPath“安全检出”。

通过Selenium WebDriver对Firefox运行。我该怎么办才能让它发挥作用?

这里大致是相关的HTML。

<div class="mobile-only">
<a href="/responsive/ajax/modals/check-out/login.php" class="secure-checkout button blue bordered small modal-open">Secure Check Out</a>
</div>

<div class="secure-checkout-button threecol last mobile-hide">
<div class="pull-right">
<a style="background-color: transparent;" href="/responsive/ajax/modals/check-out/login.php" class="button blue bordered small modal-open">Secure Check Out</a>
</div>
</div>

1 个答案:

答案 0 :(得分:5)

似乎只是因为see函数允许两个参数而click仅在xpath的情况下只执行一个参数。因此,根据this,以下内容应该有效

$I->click('(//a[contains(text(),"Secure Check Out")])[2]');