【问题解决】Selenium——NoSuchWindowException: Browsing context has been discarded
昨天上服务器检查了一下小程序后端运行是否良好,发现与selenium有关的模块的进程全挂了。惊慌失措之下重试了爬虫模块的代码,发现本机上正常运行的代码,在ubuntu上运行时出现报错:
NoSuchWindowException: Browsing context has been discarded
百度了很久也没有得到确切的解释,有说是Firefox浏览器版本与驱动不兼容之类的,但是之前一个多月都有正常运行。
后来我觉得putty很卡,感觉可能是内存炸了,运行爬虫监测了一下内存,发现在点击搜索引擎时内存占用激增,直至报错。
但是尝试了很多方法都没有能够解决selenium内存占用导致崩溃的方法;
其中一个有稍许效果的方法是每次操作一步后就清理缓存?
browser = selenium.webdriver.Firefox()
browser.get("...")
browser.delete_all_cookies()
browser.find_element_by_xpath("...").click()
browser.delete_all_cookies()
...
browser.quit()
但是还是无法阻止OOM的发生。
后来发现内存溢出后还会出现各种各样奇怪的报错,总之报错不止上面这一种情况,有的记不清楚了,我都快要抓狂了。
回寝跟队友讲了这件事情,严密地分析了一阵子觉得要么是服务器内存太小不够容量,要么是服务器带宽不够卡死在一个页面上,要么是服务器流量将竭,网速太慢。
然后我们开始考虑要不要升级换个好一点的服务器,于是先重启了一下服务器。
重启完毕,一切都正常了,爬虫不卡了,错也不报了。
这个故事告诉我们,无论发生什么事,先restart再说。
【问题解决】Selenium——NoSuchWindowException: Browsing context has been discarded相关推荐
- web自动化框架抽取示例【Java+selenium】
web自动化测试框架抽取示例 例子:测试登录模块,对登录的账号和密码进行不同的case校验. 1.1.1 无优化代码login_1 package com.lee.auto.testFrome; im ...
- html中嵌套iframe页面_selenium表单切换(iframe)
在做web自动化的过程中会遇到一些弹出的登录页面,定位后,执行程序发现还是出现报错,其实定位可能没有问题,而是表单再作怪,也就是iframe iframe iframe是HTML标签,作用是文档中的文 ...
- Selenium1 Selenium2 WebDriver
内容摘要: Selenium 1 原理 WebDriver WebDriver 组件 WebDriver 协议 Remote End 处理流程 Commands & Endpoints &am ...
- 从一道题浅说 JavaScript 的事件循环
阮老师在其推特上放了一道题: new Promise(resolve => {resolve(1);Promise.resolve().then(() => console.log(2)) ...
- edge浏览器 开启java,启动Edge浏览器,然后等待其关闭[重复]
小编典典 这是一个示例程序,可以通过某种方式设法证明硒库满足您所需的功能.您需要先下载硒库并将其设置为IDE,然后才能运行此程序. 该程序允许您单击一个按钮.然后,Firefox浏览器会自动打开并在几 ...
- HTML语义化:HTML5新标签——template
一.前言 当我们使用String-base的模板引擎(如Handlebars.js等)时,要么就通过外部文件存放模板文本,需要时再通过XHR或script标签加载进来:要么通过<script t ...
- 跟着 Event loop 规范理解浏览器中的异步机制
原文发自我的 GitHub blog,欢迎关注 前言 我们都知道 JavaScript 是一门单线程语言,这意味着同一事件只能执行一个任务,结束了才能去执行下一个.如果前面的任务没有执行完,后面的任务 ...
- JavaScript权威指南(第六版) 初读笔记
JavaScript的5种原始类型:undefined.null.布尔值.数字和字符串. JavaScript中两个非常重要的数据类型是对象和数组. 通过方括号定义数组元素和通过花括号定义对象属性名和 ...
- JavaScript权威指南--window对象
知识要点 window对象及其客户端javascript所扮演的核心角色:它是客户端javascript程序的全局对象.本章介绍window对象的属性和方法,这些属性定义了不同的API,但是只有一部分 ...
- CVE-2016-1779技术分析及其背后的故事
xlab · 2016/04/21 10:26 Author:[email protected] 0x00 前言 Geolocation API被用来获取用户主机设备的地理位置,并且它有一套完整的保护 ...
最新文章
- Win2008 R2 RemoteApp深度体验之四,RemoteApp程序测试
- 福昕pdf编辑器 android,机PDF编辑器安卓/iOS哪家强?职场达人都在用
- 把RNN植入体内,仅凭一张“薄片”,就能直接检测你有无心律异常 | Science子刊...
- 单点登录系统(SSO)和Session共享解释
- pygame (1) 移动小乌龟
- linux 系统网络服务器组建,配置和管理实训教程 pdf,Linux网络服务器配置管理项目实训教程2...
- 二值化每个特征,微软用1350亿参数稀疏神经网络改进搜索结果
- Mac OS Sierra安装Imagick
- 「第二篇」全国一等奖,经验帖。
- android调用python框架_在Java中从Android应用程序执行Python脚本?
- [转]Boosting
- 跳跃回溯____寻找最长平台
- 刚刚,Google 官方发布了 2 份编程指南,干货十足!
- mysql as 后面字段,mysql 字段as详解及实例代码
- 电脑录屏软件哪个好?高清流畅的录屏方法在这里!
- android音视频焦点切换
- android 自定义指南针,android 自定义指南针view
- 老婆:“给我讲讲你们程序员好笑的事情呗?”我扔给她这篇文章,她狂笑不止!
- 猿创征文 | DevOps运维的10个日常使用工具分享
- WEB端和手机端-三种提示框架