Как заставить WebDriverWait, если страница изменяет свое содержимое асинхронно (без перезагрузки страницы)? - PullRequest
0 голосов
/ 05 мая 2020

Я кодирую тест с помощью Selenium Webdriver (Java), получая https://cloud.google.com в качестве драйвера. Я начинаю с поиска поля ввода для поиска sendKeys ("поисковая фраза \ n"). После этого страница начинает изменять свое содержимое, и я пытаюсь пересечь эти изменения с помощью WebDriverWait:

    // first Wait - is to wait before page starts changing is content by removing search google icon
            new WebDriverWait(driver, 30).until(ExpectedConditions.invisibilityOf(searchInputFieldIcon));
    //second Wait  - i'm waiting new hyperlink to appear (this hyperlink appears in search results after the whole page is asynchronically reloaded without page reloading)            
            new WebDriverWait(driver,30)
        .until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//a[@href='https://cloud.google.com/products/calculator']")));

Дело в том, что Wait не ждет 30 секунд, прежде чем появится элемент. Код просто выдает исключение:

    org.openqa.selenium.NoSuchElementException:
 no such element: Unable to locate element: {"method":"xpath","selector":"//a[@href='https:`//cloud.google.com/products/calculator']"}`

Любая помощь будет принята с благодарностью!

Ответы [ 2 ]

1 голос
/ 05 мая 2020

Inspect Element

Проверьте приложенный снимок экрана. Здесь ссылка Href отличается от той, которую вы использовали в своем коде.

Вы можете использовать приведенный ниже код

wait.until(expectedConditions.visibilityOfElementLocated(By.linkText("Google Cloud Platform Pricing ")));
0 голосов
/ 05 мая 2020

Чтобы найти первый результат поиска, вы можете использовать следующий xpath;

//a[contains(text(),'Google Cloud Platform Pricing')]

Проверка вашего xpath

Вы можете проверить правильность вашего xpath в самом браузере.

  1. Go в DevTools (Ctrl + Shift + I)
  2. На вкладке «Элементы» нажмите Ctrl + F
  3. Введите xpath, который вы хотите проверьте

И он покажет вам, правильно ли это и сколько веб-элементов можно от него расположить.

enter image description here

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