Когда платеж работает, форма PayPal выглядит следующим образом:
Форма успешного платежа PayPal< /p>
В случае сбоя форма выглядит следующим образом:
Форма оплаты PayPal с ошибкой
Основное отличие заключается в том, как отображается номер карты, с пробелами между каждыми четырьмя цифрами, когда это работает.
Сначала я использовал метод sendKeys в своем коде Selenium:
Код: Выделить всё
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();
Код: Выделить всё
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();
Что может быть причиной этой проблемы и как я могу сделать оплату PayPal Advanced более надежной в своей автоматизации? п>
Подробнее здесь: https://stackoverflow.com/questions/793 ... enium-java
Мобильная версия