Как нажать на выпадающий список и выбрать вариант через Selenium и Java? - PullRequest
0 голосов
/ 07 июня 2018

Я пытаюсь нажать кнопку раскрывающегося списка, код успешно выполнен, но кнопка раскрытия не была нажата в селене.

<select id="comp_drpdwn" data-select-id="f41d68e6-38b3-19cc-c392-3c9fc33690e8" class="initialized">
   <option value="0">Select Company</option>
   <option value="Acme~54sc234xb">Acme</option>
   <option value="Acme Bar &amp; Grill~TI17267302">Acme Bar &amp; Grill</option>
   <option value="Ball &amp; Chain~TI58377308">Ball &amp; Chain</option>

мой код:

WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']"));
Actions actions = new Actions(driver);
actions.moveToElement(element).click().build().perform();

Ответы [ 3 ]

0 голосов
/ 07 июня 2018

Это должно работать:

WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.xpath(".//*[@id='comp_drpdwn']"))); 
Select select = new Select(element);
select.selectByVisibleText("Acme");
0 голосов
/ 07 июня 2018

@ Подход Мурти был в правильном направлении.Поскольку элемент является элементом <select>, вы должны использовать экземпляр класса Select.Но, похоже, что свойства value и VisibleText тегов option содержат динамический текст (например, ~54sc234xb) и специальные символы (например, &amp;).Поэтому я бы хотел использовать метод selectByIndex(int index) следующим образом:

WebElement elem = driver.findElement(By.xpath("//select[@class='initialized' and @id='comp_drpdwn'][@data-select-id]"));
Select select = new Select(elem);
select.selectByIndex(1);
0 голосов
/ 07 июня 2018

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

Например, чтобы выбрать опцию Acme, попробуйте следующий код.

WebElement element = driver.findElement(By.xpath(".//*[@id='comp_drpdwn']"));
Select sel = new Select(element);
sel.selectByVisibleText("Acme");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...