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

Фотография

выбор элемента из списка с помощью Selenium + Python


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

#41 Freiman

Freiman

    Профессионал

  • Members
  • PipPipPipPipPipPip
  • 1 591 сообщений
  • ФИО:Андрей Адеркин
  • Город:Йошкар-Ола

Отправлено 07 июня 2016 - 14:47

Хорошо, ввел в консоли $x("//*[@id='tree36']")
получил 2 местонахождения, я так понимаю это верхнее меню и слева.

Но если они имеют одинаковый айди, то почему он не открывает ничего? пишет мол нет элемента.

Потому что вы кликаете по первому элементу, но этот элемент на экране не виден, поэтому WebDriver кликнуть по нему не может - этого элемента действительно нет в данный момент на экране.

Вы должны кликать по второму. Я вам выше указал, что надо добавить [2]


  • 1

#42 Darksol89

Darksol89

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

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Иван
  • Город:Санкт-Петербург


Отправлено 07 июня 2016 - 14:50

$x("//div[@class='portlet-content']//a[@id='tree36']") - 1 результат
$x("//*[@id='tree36']") - 2 результат (пункт в верхнем меню и в меню слева)

$$("div.portlet-content a#tree36") - 1 результат.

 

По сути результаты все одинаковые . Подсвечивает одно и тоже


  • 0

#43 TatyanaV

TatyanaV

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

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


Отправлено 07 июня 2016 - 14:53

$x("//div[@class='portlet-content']//a[@id='tree36']") - 1 результат
$x("//*[@id='tree36']") - 2 результат (пункт в верхнем меню и в меню слева)

$$("div.portlet-content a#tree36") - 1 результат.

 

По сути результаты все одинаковые . Подсвечивает одно и тоже

Совершенно верно. 1ый и 3ий - одно и тоже, но в одном случае через xpath, во втором - через css.

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

Используйте в своем скрипте либо 1ый, либо 3ий - и будем вам счастье.


  • 1

#44 Darksol89

Darksol89

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

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Иван
  • Город:Санкт-Петербург


Отправлено 07 июня 2016 - 15:00

написал так: choosing_checkbox = self.driver.find_element_by_xpath("//div[@class='portlet-content']//a[@id='tree36']").click()

пробовал так: choosing_checkbox = self.driver.find_element_by_css_selector("div.portlet-content a#tree36").click()

все равно ошибка


  • 0

#45 Darksol89

Darksol89

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

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Иван
  • Город:Санкт-Петербург


Отправлено 07 июня 2016 - 15:08

Похоже заработало, но я засунул это условие в предыдущую функцию. В новой не хочет работать


  • 0

#46 Darksol89

Darksol89

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

  • Members
  • PipPip
  • 81 сообщений
  • ФИО:Иван
  • Город:Санкт-Петербург


Отправлено 07 июня 2016 - 15:11

всем огромное спасибо за помощь!


  • 0


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

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