Кнопка с пролетом и изображением не выделяется в Selenium 3.0 - PullRequest
0 голосов
/ 24 декабря 2018

Ниже контрольного примера я успешно пробовал, пока не сохранил и не позволил мне спланировать работы

  • Перейти на www.triphobo.com
  • Нажмите "Позже" в окне обновления
  • Хьюстон в Техасе
  • Нажмите на кнопку «Запланировать новое путешествие»
  • Нажмите «Сохранить и позвольте мне спланировать» в нижней части экрана

После этого у меня появляется флэш-экран, а затем начинается актуальная проблема.Я не могу выбрать обе опции:

  • Нажмите «Перейти к плану» справа вверху
  • Нажмите «Перейти к плану» снова в поле

Ниже приведен мой код, но Webdriver не может нажать.Что я должен сделать, чтобы щелкнуть «Перейти к плану»?

Ниже приведен код перехода к плану

WebElement skip = waitwait.until(ExpectedConditions.presenceOfElementLocated(
    By.xpath("//span[text()='Skip to plan ']")
));
//          action = new Actions(driver);
//          action.moveToElement(skip).perform();
//          action.click();
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", skip);
WebElement skipWindow = wait
wait.until(ExpectedConditions.presenceOfElementLocated(
    By.xpath("//button[text()='Skip to Plan']")
));
skipWindow.click();

Сообщение об ошибке:

org.openqa.selenium.TimeoutException: ожидаемое условие не выполнено: ожидание наличия элемента, находящегося по: By.xpath: // button [text () = 'Skip to Plan'] (пробовали в течение 40 секунд с интервалом в 500 миллисекунд)

1 Ответ

0 голосов
/ 26 декабря 2018

Когда вы нажимаете Сохранить и позволяете мне планировать, он открывает контейнер / модель, а не новое окно.Вам не нужно переключаться на другое окно для щелчка по этому элементу.Попробуйте следующий код:

WebElement skip = waitwait.until(ExpectedConditions.presenceOfElementLocated(
    cssSelector("#js_hotel_cm_container .close-hotel-combine"))

Это точно будет работать.Я нашел элемент, использующий селектор CSS, а не xpath, поскольку он работает быстрее (по крайней мере, по моему опыту).Вы также можете использовать свой xpath, найдя элемент по идентификатору js_hotel_cm_container, чем //span[text()='Skip to plan '] после этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...