您好,我正在try 点击Google Look上的不谢谢按钮:enter image description here

该按钮的完整元素如下所示

<button aria-label="No thanks" class="M6CB1c rr4y5c" jsname="ZUkOIc" jslog="71121; track:click;" data-dismiss="n">No thanks</button>

我try 使用XPath Select 它,如下所示 编辑:我在代码中添加了一个等待元素Wait = WebDriverWait(driver,60)

driver.get("https://www.google.com/")

Wait = WebDriverWait(driver,60)

buttonSignIn = "//button[@class='M6CB1c rr4y5c'][1]/@class"

Wait.until(EC.visibility_of_any_elements_located((By.XPATH,buttonSignIn)))

buttonSign = driver.find_elements(By.XPATH,buttonSignIn)

print(buttonSign.get_attribute("innerHTML"))

我之前也try 过用这样的css来 Select 它

buttonSignIn = ".M6CB1c.rr4y5c"

Wait.until(EC.visibility_of_element_located((By.CSS_SELECTOR,buttonSignIn)))

buttonSign = driver.find_element(By.CSS_SELECTOR,buttonSignIn)

print(buttonSign.get_attribute("innerHTML"))

我还try 使用如下所示的类名 Select 它

buttonSignIn = "M6CB1c rr4y5c"

Wait.until(EC.visibility_of_element_located((By.CLASS_NAME,buttonSignIn)))

buttonSign = driver.find_element(By.CLASS_NAME,buttonSignIn)

print(buttonSign.get_attribute("innerHTML"))

我跟踪了堆栈溢出中出现问题的其他内容.我做错了什么?

推荐答案

该元素在iframe内,为了到达该元素,您需要首先切换到IFRAME.

使用WebDriverWait(),然后等待frame_to_be_available_and_switch_to_it() 然后是WebDriverWait(),然后等待element_to_be_clickable().您可以使用低于css selector的值来唯一标识元素.

driver.get("https://www.google.com/")
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.CSS_SELECTOR, "iframe[name='callout']")))
WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.CSS_SELECTOR, "button.M6CB1c.rr4y5c"))).click()

在库下面导入.

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

Python相关问答推荐

Pandas 第二小值有条件

非常奇怪:tzLocal.get_Localzone()基于python3别名的不同输出?

使用miniconda创建环境的问题

如何将Docker内部运行的mariadb与主机上Docker外部运行的Python脚本连接起来

我如何根据前一个连续数字改变一串数字?

当点击tkinter菜单而不是菜单选项时,如何执行命令?

巨 Python :逆向猜谜游戏

使用字典或列表的值组合

如何使用正则表达式修改toml文件中指定字段中的参数值

从一个df列提取单词,分配给另一个列

语法错误:文档. evaluate:表达式不是合法表达式

在电影中向西北方向对齐""

如何强制向量中的特定元素在Gekko中处于优化解决方案中

为罕见情况下的回退None值键入

如何在Python中自动创建数字文件夹和正在进行的文件夹?

用由数据帧的相应元素形成的列表的函数来替换列的行中的值

按条件计算将记录拆分成两条记录

极点:在固定点扩展窗口

为什么在不先将包作为模块导入的情况下相对导入不起作用

当lambda函数作为参数传递时,pyo3执行