selenium 尝试通过切换到不同的框架/窗口来“接受Cookie”

0aydgbwb  于 2022-11-10  发布在  其他
关注(0)|答案(3)|浏览(139)

我正在试着写一些可以点击‘Alles Accept’的Python代码。该网站名为:www.Bol.com
由于我缺乏知识,我不知道如何找到Python应该关注的框架。
我知道我应该使用:
driver.switch_to.frame()
有谁能帮我吗??

tv6aics1

tv6aics11#

您必须只接受cookie,并且更可靠的是使用加载时间定位器策略,即WebDriverWait

完整工作代码为例:

from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.support.wait import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager

options = webdriver.ChromeOptions()
options.add_argument("--no-sandbox")
options.add_argument('--disable-blink-features=AutomationControlled')
options.add_argument("start-maximized")
options.add_experimental_option("detach", True)

driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()),options=options)   

URL ='https://www.bol.com/nl/nl/'
driver.get(URL)

# To accept cookie

WebDriverWait(driver, 15).until(EC.element_to_be_clickable((By.CSS_SELECTOR, '#js-first-screen-accept-all-button'))).click()
pw136qt2

pw136qt22#

实际上,这个页面上没有框架。所以不需要换。

element = driver.find_element(By.XPATH, "//button[@id='js-first-screen-accept-all-button']")
element.click()
mm9b1k5b

mm9b1k5b3#

没有IFRAME,您可以只使用ID:

driver.find_element(By.ID, "js-first-screen-accept-all-button").click()

相关问题