selenium и span
Здравствуйте, столкнулся с проблеммой, уже не знаю как сделать пока как будто по кругу хожу, хотя проблема скорей всего просто решается. Не получается найти и кликнуть на кнопку. Вот кусок кода с кнопкой:
Пробовал такие варианты:
browser.find_element(By.XPATH, '//*[@class="v-tree-node-caption"]').click() browser.find_element_by_css_selector('v-tree-node-caption').click() browser.find_element_by_xpath('//dev[@class="v-tree-node-caption"]')
Еще пробовл находить span он его находит, но пишет, что-то типа что невидимый обект и не может кликнуть на него.
Как нажать на необходимый элемент Selenium
Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно.
Необходимо обновить браузер или попробовать использовать другой.
ANTIKV
Новичок
Пользователь
Окт 1, 2021 3 0 1
Всем привет! Пытаюсь парсить сайт. Использую библиотеку Selenium
Не пойму как нажать на нужную кнопку. В данном случае кнопка номер 3.
Через find_element_by_xpath всегда нажимает на 1ваю.
Предполагаю что надо использовать метод find_element_by_class_name. но не пойму как выбрать именно нужную кнопку.
Кнопки могут быть на разных позициях страницы. Единственное атрибут data-technology
не могу нажать span или radiobutton в Selenium Python
никак не могу нажать на radiobutton после заполнения первых двух полей. Сайт: https://capsule.dior.com/en/enter/hi. Нужно нажать галочку на Mr и все галки справа. пробовал следующий код:
mr = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.ID, "title1"))) mr.click() mr = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "#title1"))) mr.click() mr = WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[@id="title1"]"))) mr.click()
но все попытки безуспешные(
Отслеживать
задан 25 июн 2020 в 15:21
62 4 4 бронзовых знака
Безусппешные — значит клик ни к чему не приводит или значит WebDriverWait в итоге падает не найдя элемента?
25 июн 2020 в 15:41
так точно, возможно это связано с тем, что у элемента есть ::before и ::after
Часть 2. Как нажать на кнопку с помощью Selenium?
Проблема в следующем, чтобы код по раскрытию всех страниц сработал корректно. Необходимо нажать на кнопку согласиться c cookie.
Ниже прилагаю сам код и варианты решения проблемы, которые я пробовал.
from selenium import webdriver from selenium.webdriver.common.keys import Keys import pandas as pd import time from selenium.common.exceptions import NoSuchElementException from selenium.webdriver.common.action_chains import ActionChains driver = webdriver.Chrome(executable_path='D:\chromedriver.exe') driver.get("https://www.soglasie.ru/agent_search/") time.sleep(4) #button_cookie = driver.find_element_by_xpath("//span[text()='Согласен']") #button_cookie = driver.find_elements_by_class_name('cookie-policy__button') #button_cookie.click() search = driver.find_element_by_xpath("//input[@class='input-smart__input']") search.send_keys('Иван') button = driver.find_element_by_xpath("//div[@class='s-btn']") button.click() while True: while True: if driver.find_elements_by_class_name('s-btn__loader'): time.sleep(10) else: break try: load_more_btn = driver.find_element_by_xpath("//span[text()='Показать еще']").find_element_by_xpath('..') except NoSuchElementException: print('Загрузили страницу до конца') break load_more_btn.click() time.sleep(10)
- Вопрос задан более двух лет назад
- 210 просмотров