验收测试-点击Codeception的图片提交按钮



我有一个简单的问题,希望有人能及时回答。

我刚刚用Codeception进行了一些验收测试,我正试图点击image类型的提交按钮:

<div id="payment">
    <input name="submit" type="image" value="" alt="Review your order" src="/images/buttons/pay-securely.png">
</div>

简单地使用$I->click()会导致测试失败:

$I->click('#payment > input[name=submit]');

有什么想法吗?

我也遇到了明确指定要单击的内容的问题。以下是我找到的两个解决方案:

  1. 使用CSS类或更好的ID作为选择器:

    $I->click(['id'=>'myButtonID']);
    
  2. 使用JavaScript/JQuery触发点击:

    $I->executeJS("$('input[name=submit]').click();");
    

我更喜欢前者,因为它更容易做到,但我在某些情况下使用后者,例如,我对正在测试的代码没有太多控制权。

我一直直接与Codeception联系,但没有回复此事。由于无法测试这一点(还有使用图像提交按钮的明显设计缺陷——我的意思是,我们是在90年代还是什么时候?!)我现在已经将输入更改为一个正确的提交按钮和CSS,那个坏男孩!

我想我应该回答我自己的问题,并把它留在这里,以防(希望不太可能)另一个可怜的灵魂继承了粗制滥造的作品。

最新更新