Ввод, не принятый полями

#java #eclipse #selenium #selenium-webdriver

Вопрос:

У меня есть веб-сайт, на котором я хочу запустить полный процесс работы с корзиной. Все идет хорошо, пока я не нажму на Способ оплаты и не выберу Дебетовую карту и.При вводе данных в поле он не принимается. Как я могу поместить данные в поля. Вот ссылка на веб-сайт для тестирования: https://vapesuite.allomate.решения/#/ . Ниже приведен код для ввода данных в поля.

     wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.xpath("//iframe[contains(@name, 'zoid__paypal_buttons')]")));
System.out.println("We have selected Credit card method");
Thread.sleep(5000);

WebElement debitCreditCardButton = wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//span[text()='Debit or Credit Card']")));
debitCreditCardButton.click();
Thread.sleep(5000);
        
driver.switchTo().defaultContent();
js.executeScript("window.scrollBy(0,800)");
//Here is the problem, the below path not working   
wait.until(ExpectedConditions.elementToBeClickable(By.xpath("//*[@id="credit-card-number"]"))).sendKeys("4111111111111111");
 

Комментарии:

1. в чем заключается ошибка ?

2. Вот скриншот ошибки: prnt.sc/1670u4y

Ответ №1:

Существуют вложенные фреймы :

номер карты, похоже, в

 div[id^='zoid-paypal-card-fields-uid_']
 

фрейм.

используйте этот код :

 debitCreditCardButton.click();
Thread.sleep(5000);
driver.switchTo().defaultContent();
js.executeScript("window.scrollBy(0,800)");
wait.until(ExpectedConditions.frameToBeAvailableAndSwitchToIt(By.cssSelector("div[id^='zoid-paypal-card-fields-uid_']")));
// and then send keys to card number input field. 

wait.until(ExpectedConditions.elementToBeClickable(By.id("credit-card-number"))).sendKeys("4111111111111111");
 

Комментарии:

1. Я пробую ваш код, но он показывает ошибку: prnt.sc/1672u50

2. моя вина ! вместо этого используйте этот css iframe[name^='__zoid__paypal_card_fields__'] вместо div[id^='zoid-paypal-card-fields-uid_']

3. Я iframe[name^='__zoid__paypal_card_fields__'] снова думаю внутри //iframe[contains(@name, 'zoid__paypal_buttons')] , так что нет смысла делать driver.switchTo().defaultContent(); — удалите это, а затем попробуйте

4. @Zaman10 : Я не могу вам ответить. Эта тема не позволяет мне ничего вводить

5. Я отправил вам приглашение на чат. не могли бы вы, пожалуйста, пообщаться в чате на StackOverflow?