Java 如何在使用appium的移动应用程序中自动化卡支付?

Java 如何在使用appium的移动应用程序中自动化卡支付?,java,selenium,selenium-webdriver,webdriver,appium,Java,Selenium,Selenium Webdriver,Webdriver,Appium,我正在尝试自动化一个场景,在这个场景中,我需要输入卡上的姓名、卡号、到期日和CVC号等卡的详细信息。当我试图发送到期日(比如“2318”)时,默认情况下,它接受的值为“23/8”。理想情况下,它应接受值为“23/18”。我试着每月和每年都给空间,但仍然不起作用。你知道如何实现自动化吗 以下是我的代码: @Override public void enterCardDetails() { waitForElement(appiumDriver,enterNameOnCar

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

  • appium java客户端:6.0.0-BETA5
  • appium桌面版本:1.6.1
  • Selenium java版本:3.9.1

  • 遗憾的是,我无法提供appium inspector的任何屏幕截图。

    根据您的问题,您看到的是非常令人期待的结果,这是过期日期字段验证错误的结果

    从本质上讲,任何信用卡的到期日都由MM/YY格式组成,其中:

    • MM
      字段将接受字符序列,例如
      01
      10
      12
    • YY
      字段将接受字符序列,例如
      18
      19
      20
    现在,每当您尝试发送
    2318
    的字符序列时,验证所涉及的
    js
    不会接受字符,并且在没有适当的js验证器的情况下,允许在MMYY字段

    这是一个pottential bug,可能没有通过手动验证

    解决方案 发送一个有效的字符序列,如下所示:

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

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


    能力。设置能力(“maxTypingFrequency”,10)

    谢谢你的回复,事实上,我多次检查了这个场景,然后我确定它不是逃犯。所以我联系了一位appium开发人员,他给了我解决方法。通过添加以下功能(我已发布为答案),我能够解决这个问题。谢谢你的帮助。干杯