Python + Selenium: 使用webdriver判断浏览器是否关闭
在使用Selenium的过程中,偶然发现浏览器意外关闭导致意料之外的错误发生。比如重复启动浏览器。在无界面headless模式下,因为目前流行的浏览器是多进程的,这是很难发现的。在浑然不知的情况下,多次重复启动浏览器而没有正常关闭,很可能导致多个浏览器进程以“假死”的状态滞留内存。“僵尸”进程占用浪费系统资源,堵塞其他进程,降低系统的性能。因此,需要合理正确的判断且处理浏览器状态,并在必要时回收系统资源的方法。
由于Selenium中webdriver是直接管理浏览器行为的实体,所以可以通过webdriver管理浏览器行为的方法来简单有效地鉴别其状态。比如,webdriver的execute_script(javascript_string)方法。学习过Javascript的码友想必知道,最简单的Javascript代码之一:
javascript:void(0);
它所表达的意义跟空集没什么两样。但是,它的作用却是不容小觑。比如,最流行的是用在<a>标签的href属性,点击使用该方法的<a>标签不跳转和弹出新标签页。进而通过设置对应的Javascript脚本来响应点击事件。
<a href="javascript:void(0);" class="title">...</a>
执行该脚本代码没有实际清晰的意义,它却是完整的一行Javascript脚本代码。如果通过webdriver启动的浏览器没有关闭和出现异常,是可以正常执行该段代码的。否则,浏览器实例出现意料之外的问题。
from selenium import webdriverobject_existed = False
# driver = webdriver.Firefox()
# or driver = webdriver.Chrome()
if driver is not None:try:driver.execute_script('javascript:void(0);')object_existed = Trueexcept:# webdriver要求浏览器执行Javascript出现异常try:driver.quit()finally:driver = Nonefinally:pass
if not object_existed:# 浏览器已关闭或标签页已关闭或其他异常...
笔记:
“javascript:void(0);”看似毫无意义,其实它的存在和数学里的“0”和“空集”是一样的,是不可或缺的。这也验证了计算机科学与数学应用的关联和一致性。
Python + Selenium: 使用webdriver判断浏览器是否关闭相关推荐
- Python selenium 控制 360安全浏览器
目前网上比较活跃的国内浏览器,几乎都是基于开源的谷歌Chromium浏览器修改的. 360安全浏览器基于Chromium(google谷歌)+Trident(IE)双内核. 建议还是使 ...
- python selenium 不弹出浏览器
python selenium 不弹出浏览器 自动化测试弹出浏览器可以清晰的看到操作步骤,和执行页面,领导也喜欢看,并不适合所有场景,比如:自动sign...哇哈哈... 开发环境: python3. ...
- selenium webdriver(python)_selenium、webdriver及浏览器的关系及对应版本安装
selenkium支持多种浏览器,包括Chrome,Safari,Firefox.Edge 等,我们以Chrome浏览器为例学习.先完成以下3步: 1 selenium安装 安装selenium和安装 ...
- Python+Selenium基础篇之2-打开和关闭火狐浏览器
本节介绍如何初始化一个webdriver实例对象driver,然后打开和关闭firefox浏览器.要用selenium打开fiefox浏览器.首先需要去下载一个driver插件geckodriver. ...
- Python selenium自动化操作Chrome浏览器
活动地址:CSDN21天学习挑战赛 文章目录 一.Selenium搭建环境 1.安装 2.安装Chrome安装浏览器驱动WebDriver 1)查看Chrome浏览器版本 2)在驱动器版本里选 ...
- python——selenium框架实现无头浏览器访问 + 规避检测配置
备注: 有的时候,我们希望,selenium访问的时候,不要出现浏览器, 那么就需要进行配置.具体配置看代码. 运行代码 # !/user/bin/env python # -*- coding: u ...
- python+selenium环境配置及浏览器调用
最近在学习python自动化,从项目角度和技术基础角度出发,我选择了python+selenium+appium的模式开始我的自动化测试之旅: 一.python安装 二.python IDE使用简介 ...
- Python selenium与pyautogui控制浏览器实现modis数据自动下载
目录 序言: 准备工作: 基本思路: 完整代码: 序言: 上次提到通过modis连接下载数据的方式有很多,本文选择selenium模拟登录的方式通过谷歌浏览器下载,但是并不推荐这种方法,只是恰好学习了 ...
- python selenium操作打开的浏览器_Python_Selenium操作Firefox浏览器
一.打开网址 方法说明:webdriver.Firefox()用于创建一个火狐浏览器的webdriver driver.get(url)用户打开固定的网址 实例如下: self.driver = we ...
最新文章
- js变量后面加问号是什么_js没那么简单(1)-- 执行上下文
- [YTU]_2917(Shape系列-3)
- java的for循环
- 花痴流口水颜文字_流口水可执行模型
- 数据结构链表之循环链表——4
- Eclipse中配置CORBA环境
- 使用Promise链式调用解决多个异步回调的问题
- 线程相关函数(1)-pthread_create(), pthread_join(), pthread_exit(), pthread_cancel() 创建取消线程
- 用友集团前端面经整理及答案
- Java集成第三方推送(极光推送)——文档篇
- 《互联网信息资源检索与利用》读书笔记
- iOS 苹果登录(第三方登录)
- dll hijack 学习
- opengl学习笔记
- Python 支付宝红包二维码制作步骤分享
- 计算机开机反复启动,电脑开机后反复重启原因 电脑开机后反复重启解决方法【详解】...
- java实体类及类属性判空
- 嵌入式linux开发笔记——Ubuntu的使用
- 杀狗问题(帽子问题)
- 毕业这五年走来,这些私藏Redis的最全知识点我贡献出来了