Выбор елемента из результата поиска., Selenium/Python |
Здравствуйте Гость [ Вход | Регистрация ] | Форум в сети 6729-й день
![]() |
Шановні користувачі! Запрошуємо вас до офіційного телеграм-канала 0day Community. Тут ви зможете поспілкуватися одне з одним та дізнатися про останні новини щодо роботи ресурса, поставити запитання до адміністрації, тощо. Перейти до телеграм-канала можна відсканувавши QR-код або натиснувши на посилання: @zeroday_ua |
Выбор елемента из результата поиска., Selenium/Python |
Console |
Пост
#1
|
Репутация: ![]() ![]() ultra active user ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 11 281 С нами с: 23-March 08 ![]() |
Собствено на странице есть два елемента, с одинаковым текстом... поиск по: driver.find_element_by_link_text("19:00-20:00").click() Логика поиска, первое совпадения и клик, а нужен как раз второй елемент... Проблема в том что там сильно хитрая разметка и нет id, ссылки динамические, сложно зацепитя... Но еще варинт xpath, но в нем я плаваю как удоборение и путнего тоже не получилось... » Нажмите, чтобы показать спойлер - нажмите опять, чтобы скрыть... « |
![]() ![]() |
xose |
Пост
#2
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 81 С нами с: 30-April 15 ![]() |
Обидва елементи це лінки? Там схоже побитий текст. Можна топорно брати другий лінк по індексу або ж шукати правильний лінк по парент елементу.
Сообщение отредактировал xose - Jun 27 2018, 12:17 |
Console |
Пост
#3
|
Репутация: ![]() ![]() ultra active user ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 11 281 С нами с: 23-March 08 ![]() |
|
mega K. |
Пост
#4
|
Репутация: ![]() ![]() Активист ![]() Группа: Пользователи Сообщений: 228 С нами с: 1-July 07 ![]() |
//a[contains(text(), '19:00-20:00')][2]
Сообщение отредактировал mega K. - Jun 27 2018, 15:30 |
Console |
Пост
#5
|
Репутация: ![]() ![]() ultra active user ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 11 281 С нами с: 23-March 08 ![]() |
Что-то я заржавел..
CODE Format from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait with webdriver.Chrome(executable_path='D:\demo\chromedriver.exe').maximize_window() as driver: wait = WebDriverWait(driver, 10) driver.get("https://www.google.com.ua/") print("textContent") Браузер на секунду открывается в весь размер, а потом: CODE Format Traceback (most recent call last): File "D:/demo/demo.py", line 4, in <module> with webdriver.Chrome(executable_path='D:\demo\chromedriver.exe').maximize_window() as driver: AttributeError: __enter__ Process finished with exit code 1 |
shalenuy |
Пост
#6
|
Репутация: ![]() ![]() Дух Группа: Пользователи Сообщений: 182 С нами с: 7-July 12 ![]() |
Что-то я заржавел.. CODE Format from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait with webdriver.Chrome(executable_path='D:\demo\chromedriver.exe').maximize_window() as driver: wait = WebDriverWait(driver, 10) driver.get("https://www.google.com.ua/") print("textContent") Браузер на секунду открывается в весь размер, а потом: CODE Format Traceback (most recent call last): File "D:/demo/demo.py", line 4, in <module> with webdriver.Chrome(executable_path='D:\demo\chromedriver.exe').maximize_window() as driver: AttributeError: __enter__ Process finished with exit code 1 yo! Зачем открывать драйвер через with, закинь в перменную ( ну или положи в папку с кодом и не нужно вызывать ) Потому что в даном кейсе как раз из за with ругается. Сделай проще options = ChromeOptions() options.add_argument("--start-maximized") driver = webdriver.Chrome(executable_path='D:\demo\chromedriver.exe', options) И здавай ожидание "пока элемент не будет виден на странице" |
Console |
Пост
#7
|
Репутация: ![]() ![]() ultra active user ![]() ![]() ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 11 281 С нами с: 23-March 08 ![]() |
yo! Зачем открывать драйвер через with, закинь в перменную ( ну или положи в папку с кодом и не нужно вызывать ) Потому что в даном кейсе как раз из за with ругается. Сделай проще options = ChromeOptions() options.add_argument("--start-maximized") driver = webdriver.Chrome(executable_path='D:\demo\chromedriver.exe', options) И здавай ожидание "пока элемент не будет виден на странице" CODE Format from selenium import webdriver driver = webdriver.Chrome(executable_path=r"D:/demo/chromedriver").maximize_window() driver.get("http://www.python.org") Почему таким образом возвращает ? CODE Format Traceback (most recent call last): File "D:/demo/sada.py", line 3, in <module> driver.get("http://www.python.org") AttributeError: 'NoneType' object has no attribute 'get' CODE Format from selenium import webdriver chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--start-maximized") driver = webdriver.Chrome(executable_path=r"D:/demo/chromedriver", options=chrome_options) driver.get("http://www.python.org") Работает... ![]() Сообщение отредактировал Console - Jan 5 2021, 1:10 |
![]() ![]() |
![]() |
Упрощённая версия | Сейчас: 17th August 2024 - 3:57 |
Сайт не розміщує електронні версії творів, а займається лише колекціонуванням та каталогізацією посилань, що публікуються нашими користувачами. Якщо Ви є правовласником якоїсь частини опублікованого матеріалу та не бажаєте, щоб посилання на нього знаходилось в нашому каталозі, зв’яжіться з нами і ми видалимо його. Файли для обміну надані користувачами сайту і адміністрація не несе відповідальності за їх вміст. |