Клик на кнопку принятия условий на сайте в selenium
При открытии сайта нужно сначала кликнуть на кнопку ПРИНИМАТЬ ВСЕ, чтоб уже можно было спарсить все нужное с сайта, но чтоб я не делал - никак не получается кликнуть на эту кнопку. Ни с помощью By.CSS_SELECTOR, ни с помощью By.XPATH.
driver = webdriver.Chrome(options=options)
driver.get("https://www.transfermarkt.world")
time.sleep(3)
driver.find_element(By.XPATH, "//*[@id='notice']/div[3]/div[2]/button").click()
time.sleep(3)
Ответы (1 шт):
Автор решения: Сергей Кох
→ Ссылка
Так как кнопка находиться внутри iframe, то сначала надо перевести фокус на него, а затем уже кликать по кнопке.
import time
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
url = r"https://www.transfermarkt.world"
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
driver.get(url)
frame = WebDriverWait(driver, 5).until(EC.presence_of_element_located((By.ID, "sp_message_iframe_732630")))
driver.switch_to.frame(frame)
driver.find_element(By.XPATH, "//*[@id='notice']/div[3]/div[2]/button").click()
time.sleep(5)
driver.quit()