Я автоматизирую процесс оформления заказа на сайте NopCommerce, используя PayPal Advanced в качестве метода оплаты. Большая часть времени автоматизация работает, но иногда она не может завершить платеж. он работает.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>
Я думал, что отправка всего номера карты сразу может быть проблемой, поэтому я изменил его на отправку по одному номеру за раз: < /p>
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();
< /code>
Даже с этим изменением проблема все еще случается. Я попытался добавить ожидания до и после заполнения номера карты, но проблема все еще возникает. Неудача случайна - иногда это работает, иногда это не так.>
Подробнее здесь: https://stackoverflow.com/questions/793 ... enium-java