Перейти к содержимому

Фотография

Drow-down list


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 11

#1 sok

sok

    Новый участник

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Sokovets Artem


Отправлено 07 марта 2012 - 07:17

Использую Selenium IDE+TestNG+Eclipse.

Столкнулся с проблемой при работе теста с выподающим списком.

Рекордер записал как:
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 в моей случае.

Спасибо.
  • 0

#2 Rara

Rara

    Активный участник

  • Members
  • PipPip
  • 83 сообщений
  • ФИО:Кондрашов Юрий Алексеевич
  • Город:Минск, Беларусь


Отправлено 07 марта 2012 - 09:40

Что именно в тесте отрабатывает не правильно? Тест останавливается с ошибкой? Если да, то с какой?
  • 0
Я бы переписал жизнь, но Бог не дает мне исходники

#3 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 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");
  • 0

#4 ashipovalov

ashipovalov

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Шиповалов Александр


Отправлено 09 марта 2012 - 04:49

Извините, что встреваю, но поскольку у меня похожая проблема, то напишу здесь, что бы не плодить похожие темы. Я использую связку 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 я не представляю
  • 0

#5 ashipovalov

ashipovalov

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Шиповалов Александр


Отправлено 09 марта 2012 - 04:52

Может быть вот этот код окажется понятнее, это уже при нажатом select
<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>

  • 0

#6 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 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");
}

По моему то что нужно.
  • 0

#7 sok

sok

    Новый участник

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Sokovets Artem


Отправлено 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).
  • 0

#8 sok

sok

    Новый участник

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Sokovets Artem


Отправлено 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");
Расписывал для СЕ каждый шаг, а он у нас умный )) Все понимает сразу.
  • 0

#9 ashipovalov

ashipovalov

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Шиповалов Александр


Отправлено 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
Там какой то хитрый селект, список формируется ява скриптом в момент нажатия, однако он не может почему то нажать на этот элемент, вомзожно получилось бы как то нажать соседний, но вот как это реализовать я увы не знаю
  • 0

#10 soleksenko2702

soleksenko2702

    Постоянный участник

  • Members
  • PipPipPip
  • 193 сообщений
  • ФИО:Олексенко Сергей

Отправлено 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
  • 0

#11 ashipovalov

ashipovalov

    Активный участник

  • Members
  • PipPip
  • 142 сообщений
  • ФИО:Шиповалов Александр


Отправлено 12 марта 2012 - 06:00

А вообще можно заставить Селениум кликнуть на определенной области, или только по элементу?
  • 0

#12 sok

sok

    Новый участник

  • Members
  • Pip
  • 21 сообщений
  • ФИО:Sokovets Artem


Отправлено 12 марта 2012 - 12:39

А вообще можно заставить Селениум кликнуть на определенной области, или только по элементу?


Я тоже делал, сначало кликом на список и потом выбрать нужный элемент, но СЕ сам догодался.
У тебя последней версии IDE?
  • 0


Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных