Выберите значения из двух выпадающих dyanamic - PullRequest
0 голосов
/ 06 июня 2019

Я пытаюсь выбрать значения из двух выпадающих меню (выбор валюты) с сайта https://www.xe.com/currencyconverter/ с помощью веб-драйвера java selenium.

Мне также нужен код для проверки конвертации после конвертации валюты

Я пробовал:

1. Custom XPath.
2. Normal select using select keyword.
3. Tried using mouse actions but couldn't locate. Looks like it needs javascript executor but don't know the code.

org.openqa.selenium.ElementClickInterceptedException: элемент перехвачен щелчком мыши: элемент <div class="css-1wy0on6 converterform-dropdown__indicators">...</div> не активируется

1 Ответ

0 голосов
/ 06 июня 2019

Скорее всего, у вас есть Disclaimer Cookie Consent , который перехватывает ваши входные события, поэтому вы не можете эффективно щелкнуть раскрывающиеся значения.

enter image description here

В Selenium Java API ваш лучший друг - WebDriverWait класс:

WebDriverWait wait = new WebDriverWait(driver, 5); 

Я бы рекомендовал использовать Явное ожидание через вышеупомянутый WebDriverWait вместе с ExpectedConditions , чтобы:

  1. Сначала убедитесь, что заявление об отказе от cookie-файлов видно и его можно щелкнуть, затем щелкните его:

    wait.until(ExpectedConditions
            .elementToBeClickable(
                    By.xpath("//button[contains(@class,'privacy') and contains(text(), 'OK')]")))
            .click();
    
  2. Затем сделайте то же самое для первого выпадающего списка:

    wait.until(ExpectedConditions
            .elementToBeClickable(
                    By.id("from")))
            .click();
    
  3. И, наконец, выберите валюту по вашему выбору, выполнив еще один клик:

    wait.until(ExpectedConditions
            .elementToBeClickable(
                    By.xpath("//span[contains(text(),'GBP')]")))
            .click();
    

    замените GBP на то, что вам нужно в качестве исходной валюты

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