- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图抓取一些谷歌数据,但我首先想点击谷歌弹出的“我同意”按钮。这是我用来执行此操作的脚本:
import time
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
search_question = input("Ask a question: ")
driver = webdriver.Chrome("*Your Webdriver location*")
driver.wait = WebDriverWait(driver, 5)
driver.get("https://google.com")
time.sleep(1)
agree = driver.wait.until(EC.presence_of_element_located((By.XPATH, '//*[@id="introAgreeButton"]/span/span')))
agree.click()
# time.sleep(0.2)
search = driver.find_element_by_class_name("gLFyf")
search.send_keys(search_question)
search.send_keys(Keys.ENTER)
问题是 selenium 似乎没有找到按钮,因此我收到超时错误。 (我也尝试过 find_element_by_xpath ,但仍然无法正常工作)。
最佳答案
如果您在 devtools 检查器中向上滚动,您会注意到您的元素位于 iframe 中:
您需要先切换到该框架,单击按钮然后切换回默认内容(主页)
driver.get("https://google.com")
#active the iframe and click the agree button
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "//iframe")))
agree = WebDriverWait(driver, 10).until(EC.element_to_be_clickable((By.XPATH, '//*[@id="introAgreeButton"]/span/span')))
agree.click()
#back to the main page
driver.switch_to_default_content()
这对我行得通。
//iframe
的原因作品。如果有多个,您需要以更高的准确度识别它。
关于Python Selenium 单击 google "I agree"按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65286557/
我试图找出一个元素是否是集合的一部分。这是我的功能: fun elementOf(x:int, (nil:int list, nil:bool list)) = nil | elementOf(x
我正在尝试使用一个复选框“同意TOS”。 如果Checkbox是,而没有选中,我想发出Flash消息。 我该怎么做呢? 我的观点: create('Item', array('url' => arra
关闭。这个问题需要多问focused 。目前不接受答案。 想要改进此问题吗?更新问题,使其仅关注一个问题 editing this post . 已关闭 8 年前。 Improve this ques
从我读过的所有内容来看,这似乎是不可能的。但这是我的场景: 我需要抓取包含待售房屋信息的表格内容。该页面没有密码保护或其他任何东西,但您首先必须单击上一页上的“我同意”链接,以便设置一个 cookie
我有两项协议(protocol),用户必须通过选中两个不同的框(每个协议(protocol) 1 个)来“同意”,然后才能继续进入购物车。如果没有选中任何框,则两个警报都会通知他们“同意”,然后再一次
我试图抓取一些谷歌数据,但我首先想点击谷歌弹出的“我同意”按钮。这是我用来执行此操作的脚本: import time from selenium import webdriver from selen
我的目的是将此函数调用到pso代码中以使其最小化。 实际上我在其他程序(mfile)中调用此代码 v=0.1*x0; % initial velocity for i=1:n f0(i,1)=o
我正在尝试使用 GoogleMaps API 和用户位置(一次性)构建一个应用程序,并试图找出解决这个问题的最佳方法,但似乎 Stack Overflow 答案采用的方法与Android 开发者网站采
我想编写一个函数number_before_reaching_sum,它接受一个名为 sum 的 int,并返回一个 int n,使得列表的前 n 个元素加起来小于 sum,但前 n + 1列表的元素
我正在研究一个在列表中找到最大数字的函数。 fun maxValue(xs) = case xs of [] => [] | first::rest => if ((first
我正在我的网站上集成 DocuSign clickWrap,它运行良好。当用户单击“同意”按钮时,我想保存一些数据。由于 ClickWrap 模态在 Iframe 中打开并且很难从 Iframe 按钮
我正在尝试访问一个网站,并获取要处理的请求以遵循重定向。我访问了“我同意”网站,但它似乎没有继续下去,并且不断重定向我 这是我的代码: public static void main(String[]
我有这个应用程序,在注册屏幕上的复选框旁边应该是一个句子:我同意公司服务条款。 服务条款部分应该是可点击的,以便用户能够进入 ToS 屏幕(尽管用户永远不会这样做)。 问题是,这个应用程序将是多语言的
我正在尝试为当天的所有足球(足球)比赛抓取以下 URL:https://www.soccerstats.com/matches.asp?matchday=2&daym=tomorrow 我的代码以前可
我正在使用这个异步项目(称为 Broker - see git ),代码如下: proxies = asyncio.Queue() broker = Broker(proxies)
我正在尝试在 Stripe Checkout 上添加一个条款和条件复选框,以便在用户点击该复选框同意我们的条款之前,支付按钮将保持禁用状态。它看起来像这样: 我找不到任何解决方案。 Wordpress
我已经在.NET中工作了一段时间,但对WCF还是陌生的。我正在尝试使用JSON创建我的第一个WCF服务。我以为我会非常非常简单地开始,然后从那里开始构建。但是我设法设法弄乱了即使是最简单的服务。这是到
我有以下代码: datatype ('a, 'b) alterlist = nil | :: of ('a*'b) * ('a, 'b) alterlist; infixr 5 :: fun buil
这是我的代码: package algorithms; import Jama.Matrix; import java.io.File; import java.util.Arrays; public
我启动了一个 redis 集群,发现了一条错误消息“[ERR] 节点不同意配置!”以及我在所附截图中用红色圈出的一些警告。 能否请您帮我分析根本原因并提出解决方案? 下面的链接是相关的截图。徐亮ent
我是一名优秀的程序员,十分优秀!