Codeception验收测试不点击按钮

时间:2014-05-20 11:04:13

标签: unit-testing testing codeception

Codeception似乎没有提交表单:

<form action="https://test.sagepay.com/gateway/service/vspform-register.vsp" method="POST" id="SagePayForm" name="SagePayForm">
  <button id="sagepay_submit" class="button_submit">Pay Now</button>
  <input type="hidden" name="navigate" value="" />
  <input type="hidden" name="VPSProtocol" value="2.23">
  <input type="hidden" name="TxType" value="PAYMENT">
  <input type="hidden" name="Vendor" value="vendorname">
  <input type="hidden" name="Crypt" value="@361cac3da8d933c239b5850de6c8eec4ec50e582025083c15f39c5cb0254e5b63bb0823eddd6d17eb4d53184cb25ac2b5f11f3e3aa975e83141f837193cc74313e26b69e1babe5e7c6a7dd272d555fc5f7d851be97848fe817e8925668315a5d9fdc7acffaab3af03d3d8f4cdc185c400d8825ff961bde8935fabdb57e4ea18320f0fd2bb9770d9b24f61c737ba493c6b3ebf9eff3e897756cd92df8963418946e59babec72813b872b6ff4ff806441ff473c634e08858e6218f6d6115c5443499f12081de168b7b0c089c21f6282bb528459c3a2449fee187294a222e2029117e891e3f13d8aebb434b42b817192541b8382dbc9dac57bf64384e98da086c13368cc31fd71e3c2a37a5e8ab89598a2d174d3bc159b3c0d837fcd28ed0c9cc2eeddcadef4be864d346a5f35c8ac3e1f4199c81f20c709155745b47da5c9dc25014384944405892af242cedb3ca2f941705e20b5a3cbf9b9a594589b60342e575eefe0d026badc53ab267708166a59a36a89691bf04cab8a76e5293cdf3bb44f932a7fef82f8be897e2277e0a92c62a61630db0e09fae1c79359a023008d4f9ad3b6b6618a1f9009783e2540b03bb244f7c21f331bd46197345dad3fd60ec8be173fb2060f6a7141bb4020dced6d2a6388b4426acf17338c619afe59a1a203dd83e8e3b38c4cc4722696fa41e478ba53c00c0bbe38673fc23dbc09e0001cf6399f157e23287b012ded502e818fc05495736d5d18af6ede793190770b406bed5fd93b7bcd417bcd5ba3ff3f941e9d7f172c624d063f7e8e830ad57a17b455f1f7e870a6bdc69d72fe813113835408aefadc29e6bd">
</form>

表单和测试是否包含:

$I->canSee('Pay Now');
$I->click('Pay Now');

canSee成功,但点击失败。我已经尝试将按钮转换为输入和各种其他东西,包括点击选择器,但无济于事。 HTML验证没有严重错误。

想法?

4 个答案:

答案 0 :(得分:0)

由于您在按钮上使用ID,因此您可以使用该ID执行点击:

$I->click('#sagepay_submit');

答案 1 :(得分:0)

我遇到了类似的问题。实际上,我的CSS选择器都没有在代码中找到。

编辑您的acceptance.suite.yml 并将浏览器属性更改为:

browser: googlechrome

接下来,转到:https://sites.google.com/a/chromium.org/chromedriver/downloads 并下载最新的Chrome驱动程序。

将其解压缩到您的系统路径中。

然后重新运行验收测试......点击现在应该工作!!!

希望这有帮助!!!

答案 2 :(得分:0)

尝试使用XPath语法访问该按钮。 canSee()只是看到您要查找的文字出现在屏幕上,但有时无法通过插入页面上显示的文字找到按钮,在此文本中“立即付款” #39 ;.试试这个:

$I->click("//button[@id='sagepay_submit']");

这是使用XPath,您可以在这里查看:http://www.w3schools.com/xpath/

还有一个关于在Codeception Acceptance Test文档中使用XPath定位器的快速描述。

答案 3 :(得分:0)

对于没有ID属性的按钮,您还可以使用按钮name属性:

$I->click('button[name="submit-button"]');
相关问题