невозможно нажать на элемент из-за объявлений Google - PullRequest
1 голос
/ 24 апреля 2020

Я пытался сделать автоматизацию, используя селен, и мне нужно нажимать на ссылки, но на веб-странице есть реклама Google, которая не позволяет мне нажимать на кнопки. Как мне решить эту проблему?

это код

elem = browser.find_element_by_link_text('Illinois')
elem.click()

и это ошибка

ElementClickInterceptedException: Message: element click intercepted: Element <a href="/state/IL">...</a> is not clickable at point (497, 858). Other element would receive the click: <iframe frameborder="0" src="https://tpc.googlesyndication.com/safeframe/1-0-37/html/container.html?2ad90d8b823cd41d3186f3484dae4192" id="google_ads_iframe_/1254144/netronline_com-medrectangle-2_0" title="3rd party ad content" name="" scrolling="no" marginwidth="0" marginheight="0" width="970" height="90" data-is-safeframe="true" sandbox="allow-forms allow-pointer-lock allow-popups allow-popups-to-escape-sandbox allow-same-origin allow-scripts allow-top-navigation-by-user-activation" data-google-container-id="12" style="border: 0px; vertical-align: bottom;" data-load-complete="true"></iframe>

Я тоже пробовал webdriver, но получаю ошибку тайм-аута

WebDriverWait(browser, 10).until(EC.element_to_be_clickable((By.XPATH, "//a[@href='https://Link.com' and contains(.,'Illinois')]"))).click()

1 Ответ

1 голос
/ 24 апреля 2020

Попробуйте следующий код:

linkText= WebDriverWait(browser, 20 ).until( 
EC.element_to_be_clickable(
    (By.LINK_TEXT, "Illinois") ) )
browser.execute_script("arguments[0].click();", linkText)

Примечание: , пожалуйста, добавьте ниже импорта в ваше решение

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...