Selenium и Python3 не нажимают на ссылку
Необходимо нажать с использованием selenium и Python3 на ссылку:
<span data-t="link:default" tabindex="0" class="Link Link_pseudo Link_view_default">У меня нет телефона</span>
Селектор, скопированный со страницы, следующий: #root > div > div.grid > div > main > div > div > div > form > div.human-confirmation-wrapper.can-switch > div > div:nth-child(2) > div > div.toggle-link.link_has-no-phone > span
Пробовал все варианты find_element...по отдельности и в цикле:
for element in driver.find_element_by_css_selector('span'):
element.click()
Выдает ошибку:
---> 17 for element in driver.find_element_by_css_selector('span'):
18 element.click()
19 #driver.execute_script("arguments[0].click();",cl)
TypeError: 'WebElement' object is not iterable
Именно эту ссылку не ищет, находит другие span на странице. Возможно эта ссылка с оберткой и нужно применить js. Пробовал driver.execute_script("arguments[0].click();",cl), но на странице стоит защита от применения js наверно, так как выбрасывает на новую страницу с требованием включить js в хроме, хотя js включен.
Ответы (1 шт):
Автор решения: Albra
→ Ссылка
Удалось решить проблему:
from selenium.webdriver.common.action_chains import ActionChains
cl = driver.find_element_by_xpath("//div[@class='toggle-link link_has-no-phone']")
el = cl.find_element_by_xpath("//*[@id=\"root\"]/div/div[2]/div/main/div/div/div/form/div[3]/div/div[2]/div/div[1]/span")
ActionChains(driver).move_to_element(el).click(el).perform()