如何使用selenium接受来自站点的cookie

问题描述 投票:0回答:1

我用 selenium 创建此代码来单击 cookie 按钮,因为我必须接受 cookie 才能访问网站数据

from selenium import webdriver
from selenium.webdriver.common.by import By

chromeOptions = webdriver.ChromeOptions() 
chromeOptions.add_argument("ignore-certificate-errors")
chromeOptions.add_argument('--headless=chrome')
wbe = webdriver.Chrome(options=chromeOptions)
wbe.get('https://www.asianbetsoccer.com/it/nextgame.html')
wbe.implicitly_wait(10)

wbe.find_element(By.XPATH, "/html/body/button").click()

但它给了我一个错误,因为它找不到按钮:

wbe.find_element(By.XPATH, "/html/body/button")
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 741, in find_element
    return self.execute(Command.FIND_ELEMENT, {"using": by, "value": value})["value"]
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\webdriver.py", line 347, in execute
    self.error_handler.check_response(response)
  File "C:\Users\Administrator\AppData\Local\Programs\Python\Python312\Lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 229, in check_resp
onse
    raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"xpath","selector":"/html/body/button"}
  (Session info: chrome-headless-shell=124.0.6367.91); For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troub
leshooting/errors#no-such-element-exception
Stacktrace:
        GetHandleVerifier [0x00007FF754EB1502+60802]
        (No symbol) [0x00007FF754E2AC02]
        (No symbol) [0x00007FF754CE7CE4]
        (No symbol) [0x00007FF754D36D4D]
        (No symbol) [0x00007FF754D36E1C]
        (No symbol) [0x00007FF754D7CE37]
        (No symbol) [0x00007FF754D5ABBF]
        (No symbol) [0x00007FF754D7A224]
        (No symbol) [0x00007FF754D5A923]
        (No symbol) [0x00007FF754D28FEC]
        (No symbol) [0x00007FF754D29C21]
        GetHandleVerifier [0x00007FF7551B411D+3217821]
        GetHandleVerifier [0x00007FF7551F60B7+3488055]
        GetHandleVerifier [0x00007FF7551EF03F+3459263]
        GetHandleVerifier [0x00007FF754F6B846+823494]
        (No symbol) [0x00007FF754E35F9F]
        (No symbol) [0x00007FF754E30EC4]
        (No symbol) [0x00007FF754E31052]
        (No symbol) [0x00007FF754E218A4]
        BaseThreadInitThunk [0x00007FFCEC3E7AC4+20]
        RtlUserThreadStart [0x00007FFCEDC2A4E1+33]

我可以使用硒还是必须使用其他方法?

我必须点击这个按钮,所以它不是弹出窗口

然后出现这个窗口,我必须在其中单击“Accetta tutto”和“Salva e continua”

python selenium-webdriver cookies
1个回答
0
投票

您的 xpath 错误。路径

/html/body/button
直接在
button
中搜索
body
,但按钮在某些
div
中,这是另一个
div
等。这需要使用
//
来获取嵌套元素,而不使用完整路径:

/html/body//button
或更短
//button

但是页面上有很多按钮,仅使用

//button
会找到页面上的第一个按钮 - 这不是带有
Accetta tutto
的按钮 - 所以你必须使用
id
text()
才能找到正确的按钮。

这对我有用

wbe.find_element(By.XPATH, "//button[text()='Accetta tutto']").click()
© www.soinside.com 2019 - 2024. All rights reserved.