Drow-down list
#1
Отправлено 07 марта 2012 - 07:17
Столкнулся с проблемой при работе теста с выподающим списком.
Рекордер записал как:
new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");
Тест отрабатывает неправильно при использование этой команды (один раз).
Хотя: Если я сделаю вот так (поставлю ожидалку и повторю команду - то все отрабатывает хорошо).
app.wait(3);
new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");
app.wait(1);
new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");
Скажите это так и должно быть при работе с выпадающим списком?
Возможно ли использовать Xpath или CssSelector к выпадающему списку?
Код в html:
div class="obj">
<select id="subsys_name" class="input" style="visibility: visible;">
<option value="">..</option>
<option disabled="">Подсистема ISUP</option>
<option value="isup">ISUP</option>
<option value="isup_mtp">MTP</option>
<option disabled=""></option>
<option disabled="">Подсистема MAP</option>
<option value="map">MAP</option>
<option value="map_tcap">TCAP</option>
<option value="map_sccp">SCCP</option>
<option value="map_mtp">MTP</option>
Если не затруднит подсказать по xpath и css в моей случае.
Спасибо.
#2
Отправлено 07 марта 2012 - 09:40
#3
Отправлено 07 марта 2012 - 11:12
Что именно в тесте отрабатывает не правильно? Тест останавливается с ошибкой? Если да, то с какой?
Хороший вопрос. Что именно не работает.
Проверил у себя на вашем html. У меня все правильно работает.
Одно только отличие в том что я пробjвал на C#. И использовал не selectByVisibleText(), а selectByText().
И я правильно понял про TestNG?
Вы после записи теста в IDE сделали ему Options->Format->TestNG(Remote Control)?
Если да, то каким образом вы получили:
new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");
Лично я получил такую строку:
selenium.select("id=subsys_name", "label=MTP");
#4
Отправлено 09 марта 2012 - 04:49
<div class="filter-select"> <select data-process="Searching..." data-search="Search Result" id="peanuts-filter" name="filter"><option value="1">People of Interest</option><option value="1">Likely to be friends</option><option value="2">Likely to be enemies</option><option value="32">Datable</option><option value="4">From your watchlist</option><option value="8">Recently messaged</option></select> <input id="query" name="query" placeholder="Add search terms" type="text" value="" /> <span></span> </div>Есть мысль нажать на соседний элемент рядом с id="peanuts-filter", однако как это можно реализовать в Selenium я не представляю
#5
Отправлено 09 марта 2012 - 04:52
<div class="filter-select"> <select id="peanuts-filter" class="selectBox" name="filter" data-search="Search Result" data-process="Searching..." style="display: none;"> <option value="1">People of Interest</option> <option value="1">Likely to be friends</option> <option value="2">Likely to be enemies</option> <option value="32">Datable</option> <option value="4">From your watchlist</option> <option value="8">Recently messaged</option> </select> <a class="selectBox selectBox-dropdown selectBox-menuShowing" style="width: 163px; display: inline-block; -moz-user-select: none;" title="" tabindex="0"> <span class="selectBox-label" style="width: 190px;">Recently messaged</span> <span class="selectBox-arrow"></span> </a>
#6
Отправлено 09 марта 2012 - 07:06
Извините, что встреваю, но поскольку у меня похожая проблема, то напишу здесь, что бы не плодить похожие темы. Я использую связку Selenium2+JUnit. Есть выпадающий список, но WebDriver не видит выпадающие из него элементы - собственного говоря вот код
<div class="filter-select"> <select data-process="Searching..." data-search="Search Result" id="peanuts-filter" name="filter"><option value="1">People of Interest</option><option value="1">Likely to be friends</option><option value="2">Likely to be enemies</option><option value="32">Datable</option><option value="4">From your watchlist</option><option value="8">Recently messaged</option></select> <input id="query" name="query" placeholder="Add search terms" type="text" value="" /> <span></span> </div>Есть мысль нажать на соседний элемент рядом с id="peanuts-filter", однако как это можно реализовать в Selenium я не представляю
Вот что мне сгенерировал selenium IDE для JUnit (WebDriver):
public void testUntitled() throws Exception {
driver.get(baseUrl);
new Select(driver.findElement(By.id("peanuts-filter"))).selectByVisibleText("Datable");
}
По моему то что нужно.
#7
Отправлено 11 марта 2012 - 13:08
Что именно в тесте отрабатывает не правильно? Тест останавливается с ошибкой? Если да, то с какой?
Хороший вопрос. Что именно не работает.
Проверил у себя на вашем html. У меня все правильно работает.
Одно только отличие в том что я пробjвал на C#. И использовал не selectByVisibleText(), а selectByText().
И я правильно понял про TestNG?
Вы после записи теста в IDE сделали ему Options->Format->TestNG(Remote Control)?
Если да, то каким образом вы получили:
new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");
Лично я получил такую строку:
selenium.select("id=subsys_name", "label=MTP");
У меня все работает при повтороном использовании команды (я же привел пример кода).
Не работает когда я использую команду один раз:
"new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");"
Хочется сделать так: Чтобы все работало с одной командой :)
Связка у меня TestNG+WebDriver.
В SM IDE - Я выбираю Options->Format->Junit(WebDriver).
#8
Отправлено 11 марта 2012 - 13:48
Что именно в тесте отрабатывает не правильно? Тест останавливается с ошибкой? Если да, то с какой?
Хороший вопрос. Что именно не работает.
Проверил у себя на вашем html. У меня все правильно работает.
Одно только отличие в том что я пробjвал на C#. И использовал не selectByVisibleText(), а selectByText().
И я правильно понял про TestNG?
Вы после записи теста в IDE сделали ему Options->Format->TestNG(Remote Control)?
Если да, то каким образом вы получили:
new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");
Лично я получил такую строку:
selenium.select("id=subsys_name", "label=MTP");
У меня все работает при повтороном использовании команды (я же привел пример кода).
Не работает когда я использую команду один раз:
"new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");"
Хочется сделать так: Чтобы все работало с одной командой :)
Связка у меня TestNG+WebDriver.
В SM IDE - Я выбираю Options->Format->Junit(WebDriver).
Разобрался:
Код:
app.linkText("1");
app.clickText("time_to");
app.linkText("12");
app.clickText("subsys_name");
app.wait(1);
new Select(app.driver.findElement(By.id("subsys_name"))).selectByVisibleText("MTP");
Ошибка была в том, что я использовал команду: app.clickText("subsys_name");
Расписывал для СЕ каждый шаг, а он у нас умный )) Все понимает сразу.
#9
Отправлено 12 марта 2012 - 05:08
org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with; duration or timeout: 15.07 secondsТам какой то хитрый селект, список формируется ява скриптом в момент нажатия, однако он не может почему то нажать на этот элемент, вомзожно получилось бы как то нажать соседний, но вот как это реализовать я увы не знаю
#10
Отправлено 12 марта 2012 - 05:42
Что касается меня, то мне не помогло
org.openqa.selenium.ElementNotVisibleException: Element is not currently visible and so may not be interacted with; duration or timeout: 15.07 secondsТам какой то хитрый селект, список формируется ява скриптом в момент нажатия, однако он не может почему то нажать на этот элемент, вомзожно получилось бы как то нажать соседний, но вот как это реализовать я увы не знаю
Что бы обратиться к соседнему элементу используйте оси: ancestor или following. смотря что Вам нужно.
http://xpath.alephza...cheatsheet.html
#11
Отправлено 12 марта 2012 - 06:00
#12
Отправлено 12 марта 2012 - 12:39
А вообще можно заставить Селениум кликнуть на определенной области, или только по элементу?
Я тоже делал, сначало кликом на список и потом выбрать нужный элемент, но СЕ сам догодался.
У тебя последней версии IDE?
Количество пользователей, читающих эту тему: 1
0 пользователей, 1 гостей, 0 анонимных