我正在学习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>
答案 0 :(得分:5)
似乎只是因为see
函数允许两个参数而click
仅在xpath
的情况下只执行一个参数。因此,根据this,以下内容应该有效
$I->click('(//a[contains(text(),"Secure Check Out")])[2]');