【问题标题】:How to automate card payment in mobile application using appium?如何使用appium在移动应用程序中自动支付卡?
【发布时间】:2018-12-19 09:24:27
【问题描述】:

我正在尝试自动化一个场景,我需要输入卡上的姓名、卡号、到期日期和 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();
    } 

我正在使用以下 appium 和 selenium 版本:

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

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

【问题讨论】:

    标签: java selenium selenium-webdriver webdriver appium


    【解决方案1】:

    根据您的问题,您所看到的几乎是预期的,并且是 到期日期字段上的验证错误的结果。

    基本上,任何信用卡上的到期日期都将包含MM/YY格式,其中:

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

    现在,当您尝试发送 2318字符序列 时,js 参与验证不接受字符并且在没有适当的 js 验证器 的情况下允许 MM 中的字符 238YY 字段。

    这是一个潜在的错误,可能已经逃脱了手动验证

    解决方案

    发送一个有效的字符序列如下:

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

    【讨论】:

    • 感谢您的回复,确实我检查了很多次场景,然后我确定它不是逃脱者。所以我联系了一位 appium 开发人员,他给了我解决方法。通过添加我作为答案发布的以下功能,我能够解决问题。谢谢你的帮助。干杯!
    【解决方案2】:

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

    capabilities.setCapability("maxTypingFrequency",10);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-23
      • 2018-05-31
      • 2016-01-02
      • 1970-01-01
      • 2013-03-09
      • 2021-08-04
      相关资源
      最近更新 更多