硒 - 政策/cookies的问题
Posted
技术标签:
【中文标题】硒 - 政策/cookies的问题【英文标题】:selenium - issue with policy/cookies 【发布时间】:2021-01-30 08:49:39 【问题描述】:问题:我无法点击“zgadzam sie”。 发生错误 "selenium.common.exceptions.NoSuchElementException: 消息:没有这样的元素:无法找到元素:"method":"xpath","selector":"//span[@class= 'RveJvd snByac' 和 text()='Zgadzam się']""
问题:我该如何处理? image english image
from selenium import webdriver
import time
driver= webdriver.Chrome()
driver.implicitly_wait(3)
driver.get("https://www.google.com/")
driver.find_element_by_xpath("//span[@class='RveJvd snByac' and text()='Zgadzam się']").click()
driver.quit()
time.sleep(5)
【问题讨论】:
【参考方案1】:您在尝试单击按钮后正在睡觉。您还在睡觉前退出驱动程序,这是另一个问题。
考虑使用WebDriverWait().until() 函数来确保元素被加载,而不是依赖于任意时间量:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//span[@class='RveJvd snByac' and text()='Zgadzam się']"))
)
driver.find_element_by_xpath("//span[@class='RveJvd snByac' and text()='Zgadzam się']").click()
您收到此错误的原因是因为element is nested in an <iframe>
。这可以通过等待 iframe 出现,然后等待加载按钮,最后点击按钮来解决:
# Wait for the iFrame to be available to switch to it
WebDriverWait(driver, 10).until(
EC.frame_to_be_available_and_switch_to_it(0)
)
# Wait for the button to be available within that iframe
WebDriverWait(driver, 10).until(
EC.presence_of_element_located((By.XPATH, "//span[@class='RveJvd snByac' and text()='Zgadzam się']"))
)
# Finally click the button
driver.find_element_by_xpath("//span[@class='RveJvd snByac' and text()='Zgadzam się']").click()
【讨论】:
仍然出现错误:文件“c:\Users\dawid\Desktop\test12.py”,第 12 行,在尝试使用完整的 xpath。您可以使用通常作为浏览器扩展下载的 xpath 工具找到它。
【讨论】:
以上是关于硒 - 政策/cookies的问题的主要内容,如果未能解决你的问题,请参考以下文章