Wenn die Zahlung funktioniert, sieht das PayPal-Formular so aus:
Paypal-Zahlungsformular erfolgreich< /p>
Wenn dies fehlschlägt, sieht das Formular so aus:
Fehlgeschlagenes Paypal-Zahlungsformular
Der Hauptunterschied besteht darin, wie die Kartennummer angezeigt wird. mit Leerzeichen zwischen jeweils vier Ziffern, wenn es funktioniert.
Zuerst habe ich die sendKeys-Methode in meinem Selenium-Code verwendet:
Code: Select all
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(60));
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[@title='paypal_card_number_field']")));
WebElement cardNumberInput = wait.until(ExpectedConditions.elementToBeClickable(By.name("number")));
cardNumberInput.click();
cardNumberInput.clear();
cardNumberInput.sendKeys(cardNumber);
driver.switchTo().defaultContent();
Code: Select all
WebDriverWait wait = new WebDriverWait(driver, Duration.ofSeconds(60));
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[@title='paypal_card_number_field']")));
WebElement cardNumberInput = wait.until(ExpectedConditions.elementToBeClickable(By.name("number")));
cardNumberInput.click();
cardNumberInput.clear();
Actions actions = new Actions(driver);
for (char c : cardNumber.toCharArray()){
actions.sendKeys(String.valueOf(c)).pause(500).perform();
}
driver.switchTo().defaultContent();
Was könnte dieses Problem verursachen und wie kann ich den PayPal Advanced-Checkout in meiner Automatisierung zuverlässiger machen?