python 浏览器自动化 弹窗控制_selenium 网页自动化 - 在访问一个网页时弹出的浏览器窗口,我该如何处理?...

特别鸣谢

本文来自柠檬班-python 自动化第 25 期 铃铛同学 在做作业时遇到的问题,并提供的解决方案!

特别感谢铃铛同学。如果你是柠檬班的学生,热烈欢迎你来投稿技术文章哦!

前言

相信大家在使用 selenium 做网页自动化时,会遇到如下这样的一个场景:

fc634c5c64746650506743d305ff7fbd.png

在你使用 get 访问某一个网址时,会在页面中弹出如上图所示的弹出框。

首先想到是利用 Alert 类来处理它。

然而,很不幸,Alert 类处理的结果就是没有结果,并不能够将这个弹出框关闭掉。

无法用处理 alert 的方式来关闭该弹出框,不关闭又无法对页面进行其他操作,怎么办呢?

解决方案

用键盘的 Enter 键来关闭该弹出框。

由于 send_keys 方法只能是针对元素来发送 selenium 的 key 值,而当前案例无法定位到该弹出框。

所以使用 PyKeyboad 来实现用 python 操作键盘

具体解决步骤

步骤 1、想要使用 PyKeyboard,需要先安装:pywin32->pyHook->PyUserInput

(1) 安装 pywin32

安装国外源的 pywin32,会经常遇到因为超时导致安装失败。因此建议用国内源来安装。

可通过 cmd 来安装国内源的 pywin32,指令如下:

也可选择其他国内源,例如:

(2) 如何安装 pyHook

下载对应版本的 pyHook 后,通过 cmd 进入到该 pyHook 的文件夹路径后,输入:

pip install pyHook1.5.1cp37cp37mwin_amd64.whl

(3) 如何安装 PyUserInput

通过 cmd,输入:

pip install PyUserInput

步骤 2、py 文件中导入 PyKeyboard,并输入 Enter 键:

#导入PyKeyboard

from pykeyboard import PyKeyboard

#实例化对象

k=PyKeyboard()

#按下Enter键

k.press_key(k.return_key) # 其中return_key就是Enter键

若需要按下其他键,可选中 PyKeyboard 后,按 ctrl+b,查看 special_key_assignment 函数下的属性的说明。

本文最开头截图完整的处理代码如下:

562a237e78e030f13d0b7cd6441f8024.png

若还有其它解决方案,欢迎留言交流!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当你想要在 Edge 浏览器中自动打开百度网址时,你可以使用 PythonSelenium 库来实现。以下是一个示例脚本,演示如何自动化在 Edge 浏览器中输入百度网址: 首先,确保你已经安装了 Selenium 库和 Microsoft Edge 浏览器驱动程序。你可以使用 `pip` 命令来安装 Selenium: ``` pip install selenium ``` 接下来,创建一个 Python 脚本文件(例如 `auto_baidu.py`),并将以下代码复制到文件中: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys # 创建 Edge 浏览器实例 driver = webdriver.Edge() # 打开百度网页 driver.get("https://www.baidu.com/") # 找到搜索框元素并输入内容 search_box = driver.find_element_by_css_selector("#kw") search_box.send_keys("Hello, World!") # 模拟按下回车键进行搜索 search_box.send_keys(Keys.RETURN) # 等待一段时间,以便观察结果 driver.implicitly_wait(5) # 关闭浏览器 driver.quit() ``` 在这个示例中,我们导入了 `webdriver` 和 `Keys` 模块来创建 Edge 浏览器实例和模拟按键操作。我们首先打开百度网页,然后找到搜索框元素,并使用 `send_keys` 方法输入内容。接下来,我们模拟按下回车键进行搜索,并使用 `implicitly_wait` 方法等待一段时间,以便观察搜索结果。最后,我们关闭浏览器。 保存并运行这个脚本,你应该能够看到 Edge 浏览器自动打开百度网址并在搜索框中输入内容。 注意:在运行脚本之前,请确保已经正确安装了 Edge 浏览器驱动程序,并将其所在路径添加到系统的环境变量中,以便 Python 能够找到驱动程序。你可以从 Microsoft 的官方网站下载适用于你的 Edge 浏览器版本的驱动程序。 希望这可以帮助到你!如有需要,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值