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

Практикум по тест-дизайну 2.0
онлайн, начало 29 ноября
Тестирование мобильных приложений
онлайн, начало 27 ноября
Автоматизатор мобильных приложений
онлайн, начало 27 ноября
Программирование на Python для тестировщиков
онлайн, начало 22 ноября
Фотография

Взаимодействие с элементом у которого style="display:none;". И

display:none python selenium

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

#1 Varfalamei

Varfalamei

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 19 Май 2016 - 10:51

Добрый день!

Задача: на данном сайте http://skidki.raiffe...ers/?act=search выполнить выбор какого-нибудь региона. 

 

Попытка 1:

from selenium import webdriver
from selenium.webdriver.support.ui import Select

dirver = webdriver.Firefox()
driver.get('http://skidki.raiffeisen.ru/partners/?act=search')
select = Select(driver.find_element_by_name('f-region'))
select.select_by_visible_text("Санкт-Петербург")

Попытка 2:

from selenium import webdriver

dirver = webdriver.Firefox()
driver.get('http://skidki.raiffeisen.ru/partners/?act=search')
driver.find_element_by_xpath("//button[@type='button']").click()
driver.find_element_by_id("ui-multiselect-f-region-option-2").click()
driver.find_element_by_css_selector("label.ui-corner-all.ui-state-hover > span").click()

Попытка 3:

from selenium import webdriver

dirver = webdriver.Firefox()
driver.get('http://skidki.raiffeisen.ru/partners/?act=search')
driver.find_element_by_xpath("//button[contains(concat(' ', @type, ' '), 'button')]").click()
driver.find_element_by_xpath("//option[contains(concat(' ', @value, ' '), '27')]").click()

Во всех случаях получаю NoSuchElementException.

 

Понял, что нужно думать в сторону JS и execute_scripts(), но не могу сообразить, что конкретно делать в моем случае.

Буду очень благодарен развернутым ответам с примерами!

 

PS скрипты вводил в консоли, поэтому нигде нет ожиданий.

 


  • 0

#2 BabyRoot

BabyRoot

    Специалист

  • Members
  • PipPipPipPipPip
  • 638 сообщений


Отправлено 19 Май 2016 - 11:55

Сначала кликнуть по кнопке css: li.region button

Ожидать появления выпадающего списка css: div.partner-region-filter > ul

А затем кликнуть по региону xpath: //li//span[contains(text(),'Брянская обл.')]


  • 1

#3 DmitriyQA

DmitriyQA

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

  • Members
  • PipPipPip
  • 183 сообщений
  • ФИО:Коваленко Дмитрий Владимирович
  • Город:Tel Aviv

Отправлено 19 Май 2016 - 13:25

Вы не можете кликнуть по эелементу котороый not visible/ not enabled


  • 0

Senior QA/ Wix.com / qaacademy.net


#4 Varfalamei

Varfalamei

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 19 Май 2016 - 14:30

Сначала кликнуть по кнопке css: li.region button

Ожидать появления выпадающего списка css: div.partner-region-filter > ul

А затем кликнуть по региону xpath: //li//span[contains(text(),'Брянская обл.')]

Ваш пример не работоспособен.(


  • 0

#5 Varfalamei

Varfalamei

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

  • Members
  • Pip
  • 14 сообщений

Отправлено 19 Май 2016 - 14:40

Вы не можете кликнуть по эелементу котороый not visible/ not enabled

Вы не знаете как можно решить эту проблему? Как элемент из нот визибл превратить в визибл?
 

 


 


  • 0

#6 TatyanaV

TatyanaV

    Опытный участник

  • Members
  • PipPipPipPip
  • 388 сообщений
  • ФИО:Воробьева Татьяна


Отправлено 19 Май 2016 - 14:51

Про попытку №2 - "driver.find_element_by_css_selector("label.ui-corner-all.ui-state-hover > span").click()"

Обычно добавление в класс чего-то со словом "hover" происходит при наведении мышки.

Вы в рамках указанного кода - мышку на элемент не наводите, поэтому когда скрипт работает, элемента "label.ui-corner-all.ui-state-hover" вероятней всего нет.


  • 0

#7 DennisM

DennisM

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

  • Members
  • Pip
  • 55 сообщений
  • ФИО:Dennis M
  • Город:Ralegh NC, USA

Отправлено 19 Май 2016 - 15:30

Юзайте Actions

В соседней теме уже обьяснял:

http://software-test...nium-webdriver/

 

Бывает что на странице элементы не Select и не могут инициализироваться пока не выпадут из меню. В селениуме есть Actions.

 

Webelement menu= driver.findElement(By.xpath("//div[@class='меню.Иконка из которой всё выпадает']/a")); //меню. Иконка из которой всё выпадает

Actions mouse = new Actions(driver);

//Двигаем мышь на меню и зависаем над ним. Меню вываливается.
mouse.moveToElement(menu).build().perform();  

//mouse.moveToElement(menu).click().build().perform(); - если надо кликнуть а не висеть над меню

 

//Кликаем по опции из списка. 

Webelement item= driver.findElement(By.xpath("//div[@class='Элемент меню из списка']/a")); //Элемент меню из списка

mouse.moveToElement(item).click().build().perform();
 

//или тут уже сам Webdriver может найти и кликнуть

//item.click();


  • 0

#8 Boltick

Boltick

    Специалист

  • Members
  • PipPipPipPipPip
  • 596 сообщений
  • ФИО:Алексей
  • Город:планета Земля

Отправлено 20 Май 2016 - 14:20

Заранее извинюсь, что не запощу код, который решит проблему, но вот что я предлагаю:

 

1. делаем клик на кнопку

<button type="button" class="ui-multiselect ui-widget ui-state-default ui-corner-all partner-filter partner-region-filter ui-state-active" aria-haspopup="true" style="width: 210px;">

2. Ждем пока вот этот элемент не становится видимым:

<div class="ui-multiselect-menu ui-widget ui-widget-content ui-corner-all partner-filter partner-region-filter ui-multiselect-single" style="width: 217px; top: 317px; left: 201px; display: block;">

по умолчанию он имеет стиль display: none;

<div class="ui-multiselect-menu ui-widget ui-widget-content ui-corner-all partner-filter partner-region-filter ui-multiselect-single" style="width: 217px; top: 317px; left: 201px; display: none;">

3. Кликаем на необходимый элемент из списка (Брянская обл.):

<input id="ui-multiselect-f-region-option-3" name="multiselect_f-region" type="radio" value="8" title="">

  • 1
Алексей Булат
Про Тестинг

#9 cr0w

cr0w

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

  • Members
  • Pip
  • 44 сообщений
  • Город:Kiev

Отправлено 14 Июнь 2016 - 11:14

driver.get("http://skidki.raiffeisen.ru/partners/?act=search");
driver.findElement(By.cssSelector(".region>button")).click();
Object valuesList = new WebDriverWait(driver, 5).until(
    ExpectedConditions.visibilityOfAllElementsLocatedBy(By.cssSelector("div.partner-region-filter>ul"))
);
WebElement list = (WebElement) ((ArrayList) valuesList).get(0);
list.findElement(By.xpath(String.format("//label[span='%s']", region))).click();

  • 0
In God we trust the rest we test


Selenium 2.0: стартовый уровень
онлайн
Программирование на Java для тестировщиков
онлайн
Автоматизация функционального тестирования
онлайн
Selenium WebDriver: полное руководство
онлайн




Темы с аналогичным тегами display:none, python, selenium

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

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

Яндекс.Метрика
Реклама на портале