Как выбрать элемент из выпадающего списка, используя Selenium и Java - PullRequest
0 голосов
/ 30 января 2019

Трудно выбрать предмет из выпадающего списка.HTML:

<div id="first4" class="ui-small ui-re-row-sapce">                          
<select name="srclang" id="srclang" data-placeholder="Type source language *" class="form-control del-change capturedata selectized" tabindex="-1" style="display: none;"><option value="90" selected="selected">English</option></select>

<input type="select-one" autocomplete="off" tabindex="" id="srclang-selectized" placeholder="Type source language *" style="width: 151px; opacity: 1; position: relative; left: 0px;">

Кодовые испытания:

Select SourceLanguageIs= new Select(driver.findElement(By.xpath("//input[@id='srclang-selectized']"))); 
SourceLanguageIs.selectByIndex(2); 
//SourceLanguageIs.selectByVisibleText("English"); // 
SourceLanguageIs.selectByValue("90");

Ответы [ 3 ]

0 голосов
/ 30 января 2019

Игнорируйте класс Select, потому что строка тега 'select' невидима, и попробуйте следующий код:

driver.findElement(By.id('srclang-selectized')).sendKeys("Option that you want to Select");

Поскольку это идентификатор, поэтому не нужно писать выражение XPath.

0 голосов
/ 30 января 2019

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

  1. selectByVisibleText ()
  2. selectByValue ()
  3. selectByIndex ()

Пример кода для выбора раскрывающегося списка следующим образом:

Select SourceLanguageIs= new Select(driver.findElement(By.id("srclang")));
SourceLanguageIs.selectByIndex(2); 
SourceLanguageIs.selectByVisibleText("English");
SourceLanguageIs.selectByValue("90");

Надеется, что это помогло.

0 голосов
/ 30 января 2019

Согласно HTML, кажется, что узел <select> имеет атрибут style="display: none;", поэтому вы не можете напрямую получить доступ к узлу <select>.

Вы можете передать соответствующий частичный символ последовательность то есть английский для тега <input> и затем click() для элемента с текстом английский , и вы можете использовать следующее решение:

new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.xpath("//input[@id='srclang-selectized']"))).sendKeys("English");
new WebDriverWait(driver, 10).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//select[@id='srclang' and @name='srclang']/option[contains(., 'English')]"))).click();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...