Я пытаюсь автоматизировать сценарий, который бронирует билет на автобус на веб-сайте. Я использую Selenium WebDriver с Eclipse, и когда я пытаюсь найти элемент, то есть «Имя пассажира», ошибок компиляции нет, но при выполнении отображается ошибка, такая как « Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"xpath","selector":"//input[@name='i_passengerAge']"}
».
Код HTML и Java ниже, также мне нужно быстрое решение для этого.
Информация о моей системе:
HTML веб-страницы:
<input name="i_passengerName" id="i_passengerName" maxlength="30" class="inputclass pageRequired commonInputStyle" title="Please enter your name!" type="text">
<input name="i_passengerAge" id="i_passengerAge" maxlength="2" size="4" class="inputclass fillAge digits commonInputStyle" type="text">
Мой скрипт автоматизации:
WebElement PD_Name = driver.findElement(By.name("i_passengerName"));
PD_Name.sendKeys(new String[] {"Testing"});
PD_Name.submit();
WebElement PD_Age = driver.findElement(By.name("i_passengerAge"));
PD_Age.sendKeys(new String[] {"45"});
PD_Age.submit();
Решение проблемы
Я сам использую C#, поэтому вам придется проверить синтаксис здесь, но я полагаю, что ваша проблема может заключаться в том, что вы слишком быстро обращаетесь к элементам (до полной загрузки страницы ). Я бы посоветовал попробовать WebDriverWait
класс. Я считаю, что в Java это что-то вроде:
WebDriverWait wait = new WebDriverWait(_driver, timeout);
wait.until(_driver.findElement(By.name("i_passengerAge")));
После этой строки вы можете безопасно получить доступ к элементу, поскольку вы подтвердили, что он полностью загружен на страницу.
Комментариев нет:
Отправить комментарий