Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
单击“;接受Cookies”;Python中的Selenium弹出窗口_Python_Selenium_Selenium Webdriver_Cookies - Fatal编程技术网

单击“;接受Cookies”;Python中的Selenium弹出窗口

单击“;接受Cookies”;Python中的Selenium弹出窗口,python,selenium,selenium-webdriver,cookies,Python,Selenium,Selenium Webdriver,Cookies,我一直在尝试用selenium获取这个电子商务网站的一些信息。但是,当我访问网站时,我需要接受cookies才能继续。这只发生在机器人访问网站时,而不是我手动访问网站时。当我尝试通过xpath查找相应的元素时,正如我在手动检查页面时发现的那样,我总是会收到以下错误消息: selenium.common.exceptions.StaleElementReferenceException:消息:stale元素引用:元素未附加到页面文档 我的代码如下所示 import time import pand

我一直在尝试用selenium获取这个电子商务网站的一些信息。但是,当我访问网站时,我需要接受cookies才能继续。这只发生在机器人访问网站时,而不是我手动访问网站时。当我尝试通过xpath查找相应的元素时,正如我在手动检查页面时发现的那样,我总是会收到以下错误消息:

selenium.common.exceptions.StaleElementReferenceException:消息:stale元素引用:元素未附加到页面文档

我的代码如下所示

import time
import pandas
pip install selenium
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.common.exceptions import TimeoutException
from bs4 import BeautifulSoup #pip install beautifulsoup4

PATH = "/Users/Ziye/Desktop/Python/chromedriver"
delay = 15

driver = webdriver.Chrome(PATH)
driver.implicitly_wait(10)

driver.get("https://en.zalando.de/women/?q=michael+michael+kors+taschen")
driver.find_element_by_xpath('//*[@id="uc-btn-accept-banner"]').click()
这是对应于按钮“ok”的HTML。XPATH如上所示


没关系

有人知道我的错误在哪里吗?

您应该添加显式等待按钮:

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait


driver = webdriver.Chrome(executable_path='/snap/bin/chromium.chromedriver')
driver.implicitly_wait(10)

driver.get("https://en.zalando.de/women/?q=michael+michael+kors+taschen")
wait = WebDriverWait(driver, 15)
wait.until(EC.element_to_be_clickable((By.XPATH, '//*[@id="uc-btn-accept-banner"]')))
driver.find_element_by_xpath('//*[@id="uc-btn-accept-banner"]').click()
您的定位器是正确的。
作为css选择器,您可以使用
.uc btn footer container.uc btn.uc btn primary

非常感谢!现在可以了:)