Проблема с селекторами в Selenium Web Driver - PullRequest
0 голосов
/ 18 сентября 2018

У меня проблема с некоторыми селекторами, чтобы щелкнуть в моем автоматическом тесте в Selenium.Мой тест не видит ни одного из селекторов, которые я использовал.Вот мой div, с которым я работаю:

<select name="people" id="demo-htmlselect" onchange="selectConfigOption(this.value)" >
         <option value="">Choose a selection...</option>
         <option value="429" data-imagesrc="https://logicvapes-us-dev.jtiweb.co.uk/media/catalog/swatches/4/45x45/media/tobacco.png"
                                            data-description=""> Tobacco &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 27 mg/ml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                     </option>
         <option value="432" data-imagesrc="https://logicvapes-us-dev.jtiweb.co.uk/media/catalog/swatches/4/45x45/media/menthol.png"
                                            data-description=""> Menthol &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 27 mg/ml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                     </option>
         <option value="435" data-imagesrc="https://logicvapes-us-dev.jtiweb.co.uk/media/catalog/swatches/4/45x45/media/cherry.png"
                                            data-description=""> Cherry &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 27 mg/ml &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;                     </option>
</select>

И мои идеи (которые не работают):

wd = new FirefoxDriver();

WebElement span = wd.executeScript("return document.getElementById('dd-select');");

wd.findElement(span).click();

//wd.findElement(By.xpath("//div[@class='dd-select']/span[@class='class='dd-pointer.dd-pointer-down'']")).click();

//wd.findElement(By.xpath("value=//*[@id='432']"));

//WebElement register = wd.findElement(By.name('people'));

//wd.findElement(By.partialLinkText("Choose a selection...")).click();

//wd.findElementById("select=//*[@id='429']").click();

Спасибо за каждый совет!

Ответы [ 3 ]

0 голосов
/ 18 сентября 2018

Это неправильный способ выбора опции из поля выбора.

См. Выбрать

Вы должны использовать что-то вроде этого:

WebElement element = <WEB DRIVER INSTANCE>.findElement(By.xpath(SELECTOR FOR THE SELECT ELEMENT));
Select select = new Select(element);
select.selectByValue(<VALUE OF THE SELECTED ITEM>);
0 голосов
/ 18 сентября 2018

Этот раскрывающийся список сделан с использованием тегов select и option, поэтому вы можете использовать select class from selenium.

Select drop_down = new Select(driver.findElement(By.id("demo-htmlselect")));
drop_down.selectByVisibleText("Menthol");

Или

drop_down.selectByValue("432");
0 голосов
/ 18 сентября 2018

В соответствии с HTML, которым вы поделились, элемент является тегом <select>, поэтому вы должны использовать класс Select и дополнительно WebDriverWait , чтобы выбрать опцию, и вы можете использовать следующее решение :

WebElement elem = new WebDriverWait(driver, 20).until(ExpectedConditions.visibilityOfElementLocated(By.xpath("//select[@id='demo-htmlselect' and @name='people']")));
Select mySelect = new Select(elem);
//selecting the second item by value 429
mySelect.selectByValue("429");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...