如何使用appium在移动应用程序中自动进行卡支付?

时间:2018-07-11 10:57:05

标签: java selenium selenium-webdriver webdriver appium

我正在尝试自动化一个方案,在该方案中,我需要输入卡的详细信息,例如卡上的姓名,卡号,有效期和CVC号码。当我尝试发送到期日时说“ 2318”,默认情况下它接受的值为“ 23/8”。理想情况下,它应该接受值为“ 23/18”。我试图逐月分配空间,但仍然无法正常工作。知道如何自动化吗?

以下是我的代码:

 @Override
    public void enterCardDetails() {
        waitForElement(appiumDriver,enterNameOnCardEditField).sendKeys("test");
        waitForElement(appiumDriver,enterCardNumberEditField).sendKeys("0000000000000000");
        waitForElement(appiumDriver,enterExpiryMMYYEditField).sendKeys("2518");
        waitForElement(appiumDriver,enterCVCNumberField).sendKeys("000");
        waitForElement(appiumDriver,makePaymentOption).click();
    } 

我正在使用以下鸦片和硒版本:

  1. appium-java客户端:6.0.0-BETA5
  2. appium桌面版本:1.6.1
  3. Selenium Java版本:3.9.1

很遗憾,我无法提供鸦片检查器的任何屏幕截图。

2 个答案:

答案 0 :(得分:2)

根据您的问题,您所看到的完全是预期的,并且是由于有效日期字段上的验证错误造成的。

基本上,任何信用卡上的有效期都将由 MM/YY 格式组成,其中:

  • MM 字段将接受字符序列,例如011012
  • YY 字段将接受字符序列,例如181920

现在,每当您尝试发送 2318 字符序列时,参与验证的js 不接受< / strong>字符,并且在没有适当的 js验证器的情况下,允许字符 23 8 分别是 MM YY 字段。

这是一个潜在的错误,可能已通过手动验证

解决方案

发送有效的字符序列,如下所示:

waitForElement(appiumDriver,enterExpiryMMYYEditField).sendKeys("0718");

答案 1 :(得分:0)

我能够通过添加以下功能来解决此问题:

capabilities.setCapability(“ maxTypingFrequency”,10);