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

Фотография

Обращение к select - Python

python selenium select

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

#1 Varfalamei

Varfalamei

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

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

Отправлено 06 мая 2016 - 13:57

Добрый день!

Проблема с изменением города при входе на сайт Медиамаркта. Подскажите, пожалуйста, что я делаю не так.

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

driver = webdriver.Firefox()
driver.get('http://mediamarkt.ru')
select = Select(driver.find_element_by_id('shopsCites'))
select.select_by_visible_text('Брянск')

В результате получаю исключение

selenium.common.exception.ElementNotVisibleException

На другом сайте мой код работает. Не могу понять в чем же дело.
Буду благодарен за помощь!


  • 0

#2 Vad1m198

Vad1m198

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

  • Members
  • PipPip
  • 115 сообщений
  • ФИО:Вадим


Отправлено 06 мая 2016 - 14:13

Ошибка однозначно говорит, что елемент с id='shopsCites' не виден. Вы уверены, что когда переходите по урл, даный селект виден?


  • 0

#3 user12

user12

    Специалист

  • Members
  • PipPipPipPipPip
  • 895 сообщений
  • ФИО:Виктор
  • Город:Минск


Отправлено 06 мая 2016 - 14:17

Поставьте какой-нибудь

time.sleep(5)
 
И гуглите про ожидания в selenium

  • 0

#4 Varfalamei

Varfalamei

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

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

Отправлено 06 мая 2016 - 14:25

 

Поставьте какой-нибудь

time.sleep(5)
 
И гуглите про ожидания в selenium

 

Код вводился в консоли. Получается, ожидание не нужно.


  • 0

#5 Varfalamei

Varfalamei

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

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

Отправлено 06 мая 2016 - 14:25

Ошибка однозначно говорит, что елемент с id='shopsCites' не виден. Вы уверены, что когда переходите по урл, даный селект виден?

Нет не уверен.
Не могли бы Вы взглянуть по данной ссылке?


  • 0

#6 Varfalamei

Varfalamei

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

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

Отправлено 06 мая 2016 - 14:27

Очень хотелось бы увидеть код, который бы работал в данном примере.


  • 0

#7 aid

aid

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

  • Members
  • PipPipPipPip
  • 448 сообщений
  • ФИО:Николай


Отправлено 06 мая 2016 - 18:31

Вы бы попробовали бы всё же советы применить, при чём тут вообще консоль?


  • 0

#8 Varfalamei

Varfalamei

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

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

Отправлено 06 мая 2016 - 20:23

Вы бы попробовали бы всё же советы применить, при чём тут вообще консоль?


Какие советы? Вставить sleep(5) в свой код?
Разве эта функция не останавливает выполнение программы на указанное количество секунд?
И так при вводе каждой строки промежуток времени есть до ввода следующей.
  • 0

#9 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 07 мая 2016 - 14:31

Что-то я не нашел, где на данном сайте город изменяется с помощью select'a?

Имеется ввиду выпадающий список в верхнем левом углу или что-то другое?


  • 0

#10 Varfalamei

Varfalamei

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

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

Отправлено 07 мая 2016 - 19:45

Что-то я не нашел, где на данном сайте город изменяется с помощью select'a?
Имеется ввиду выпадающий список в верхнем левом углу или что-то другое?

Верно. А почему это не селект? В html именно такие теги.
Как корректно изменять город?
  • 0

#11 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 08 мая 2016 - 08:21

Верно. А почему это не селект? В html именно такие теги.
Как корректно изменять город?

 

Если мы говорим об одном и том же, то этот список реализован с помощью тегов <ul>/<li>.

Изменение города у меня получается при помощи обычных кликов.

Прикрепленный файл  мм.png   297,63К   2 Количество загрузок:


  • 0

#12 Varfalamei

Varfalamei

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

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

Отправлено 08 мая 2016 - 16:20

 

Верно. А почему это не селект? В html именно такие теги.
Как корректно изменять город?

 

Если мы говорим об одном и том же, то этот список реализован с помощью тегов <ul>/<li>.

Изменение города у меня получается при помощи обычных кликов.

attachicon.gifмм.png

 

Да об одном и том же. А не могли бы Вы показать свой код, это бы помогло мне разобраться.
Я смотрел в сторону

<select data-ng-model="main.cities" id="shopsCites" class="sidebar__shops-list" name="shops"><option value="shop_R048">Архангельск</option><option value="shop_R052" selected="selected">Астрахань</option><option value="shop_R027">Белгород</option><option value="shop_R022">Брянск</option><option value="shop_R057">Великий Новгород</option><option value="shop_R038">Владимир</option><option value="shop_R014">Волгоград</option><option value="shop_R042">Вологда</option><option value="shop_R013">Воронеж</option><option value="shop_R001">Екатеринбург</option><option value="shop_R063">Иваново</option><option value="shop_R050">Ижевск</option><option value="shop_R034">Йошкар-Ола</option><option value="shop_R010">Казань</option><option value="shop_R040">Калуга</option><option value="shop_R055">Киров</option><option value="shop_R045">Кострома</option><option value="shop_R011">Краснодар</option><option value="shop_R032">Красноярск</option><option value="shop_R039">Курск</option><option value="shop_R020">Липецк</option><option value="shop_R062">Махачкала</option><option value="shop_R002">Москва и Подмосковье</option><option value="shop_R049">Мурманск</option><option value="shop_R033">Набережные Челны</option><option value="shop_R056">Нальчик</option><option value="shop_R009">Нижний Новгород</option><option value="shop_R016">Новосибирск</option><option value="shop_R017">Омск</option><option value="shop_R012">Оренбург</option><option value="shop_R041">Орёл</option><option value="shop_R051">Пенза</option><option value="shop_R046">Пермь</option><option value="shop_R035">Петрозаводск</option><option value="shop_R054">Псков</option><option value="shop_R008">Ростов-на-Дону</option><option value="shop_R019">Рязань</option><option value="shop_R004">Самара</option><option value="shop_R015">Санкт-Петербург</option><option value="shop_R058">Саранск</option><option value="shop_R047">Саратов</option><option value="shop_R043">Смоленск</option><option value="shop_R061">Сочи</option><option value="shop_R053">Ставрополь</option><option value="shop_R031">Сургут</option><option value="shop_R060">Таганрог</option><option value="shop_R044">Тамбов</option><option value="shop_R037">Тверь</option><option value="shop_R030">Тольятти</option><option value="shop_R036">Тула</option><option value="shop_R059">Тюмень</option><option value="shop_R026">Ульяновск</option><option value="shop_R018">Уфа</option><option value="shop_R064">Чебоксары</option><option value="shop_R005">Челябинск</option><option value="shop_R021">Ярославль</option></select>

  • 0

#13 Snap

Snap

    Специалист

  • Members
  • PipPipPipPipPip
  • 980 сообщений
  • ФИО:Роман
  • Город:Москва


Отправлено 08 мая 2016 - 16:54

Да, я видел этот код, но непонятно к чему он относится, то ли к мобильной версии...

А тест я записал в Selenium IDE - работает даже на быстрой скорости воспроизведения.

Если перевести на Python, то все просто:

driver.find_element_by_css_selector("span.js-select-city-link").click()
driver.find_element_by_link_text(u"Брянск").click()

  • 0


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

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