Автоматизировать / обработать 5-й выпадающий URL-адрес https://jedwatson.github.io/react-select/ с именем пользователей Github (Aysnc с fetch.js) - PullRequest
0 голосов
/ 11 октября 2019

У меня есть проблема для автоматизации этого раскрывающегося списка с помощью веб-драйвера selenium с использованием Java

Это ссылка - перейдите к пятому раскрывающемуся списку с именем пользователей Github (fetch. Js)

Я не могу ввести данные в поле поиска. Я использую ключи отправки после выполнения щелчка, но он выдает исключение, подобное этому «элемент не взаимодействует». Шаги, за которыми я следую, раскрываются в раскрывающемся списке

driver.findElement(By.xpath("xapth")).click

без параметров, так как он доступен для поиска и параметры появляются динамически послеввод ключевого слова в поле поиска.

driver.findElement(By.xpath("xapth")).sendkeys("Test");

Sendkeys не работают в этом случае из-за раскрывающегося списка при выполнении действия отправки ключей.

<div class="Select-placeholder">Select...</div>

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Ниже приведен код, который работает. Оптимизируйте код, удалив thread.Sleep и поместив несколько значимых ожиданий в соответствии с вашими требованиями.

driver.Navigate().GoToUrl("https://jedwatson.github.io/react-select/");
IWebElement element1 = driver.FindElement(By.XPath("//span[@id='react-select-6--value']"));
IWebElement element2 = driver.FindElement(By.XPath("//span[@id='react-select-6--value']/div[2]/input[1]")) ;
element1.Click();
Thread.Sleep(2000);
element2.SendKeys("Test");
Thread.Sleep(1000);
element2.SendKeys(Keys.Tab);

Обратите внимание, что element2 активируется после нажатия на element1.

0 голосов
/ 11 октября 2019

Попробуйте следующий код:

    public void typeAndSelect() {
        WebElement searchBox = driver.findElement(By.xpath("//div[@class='section'][5]//div[@class='Select-control']"));
        searchBox.click();

        WebElement inputField = driver.findElement(By.xpath("//div[@class='section'][5]//input[@role='combobox']"));
        inputField.clear();

        String searchWord = "test";

        inputField.sendKeys(searchWord);

        WebElement selectDropdown = driver.findElement(By.xpath("//div[@class='Select-menu-outer']//div[@role='option'][text()='" + searchWord +"']"));

        // wait for search results.
        WebDriverWait wait = new WebDriverWait(driver, 10);
        wait.until(ExpectedConditions.elementToBeClickable(selectDropdown)).click();
    }

Исправьте следующую часть xpath

"// div [@ class = 'section'] [5]"

до вашей реализации раскрывающегося списка

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