在使用selenium进行自动化测试中我们有时会遇到这样的情况:

我们需要手动打开浏览器,进入到所需的页面,执行一些手动任务,如输入表单、输入验证码,登陆成功后,然后再开始运行自动化脚本。

这种情况下如何使用selenium来接管先前已打开的浏览器呢?

这里给出Google Chrome浏览器的解决方案。

我们可以利用Chrome DevTools协议。它允许客户检查和调试Chrome浏览器。

打开cmd,在命令行中输入命令:

chrome.exe --remote-debugging-port=9222 --user-data-dir="C:\selenum\AutomationProfile"

对于-remote-debugging-port值,可以指定任何打开的端口。

对于-user-data-dir标记,指定创建新Chrome配置文件的目录。它是为了确保在单独的配置文件中启动chrome,不会污染你的默认配置文件。

还有,不要忘了在环境变量中PATH里将chrome的路径添加进去。

此时会打开一个浏览器页面,我们输入百度网址,我们把它当成一个已存在的浏览器。

现在,我们需要接管上面的浏览器。新建一个python文件,运行以下代码:

fromselenium import webdriverfromselenium.webdriver.chrome.options import Options

chrome_options=Options()

chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

chrome_driver= "chromedriver.exe"driver= webdriver.Chrome(chrome_driver, chrome_options=chrome_options)

print(driver.title)

driver.get("https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html")

会发现打印出了 “百度一下,你就知道” 的网页标题。这样我们就实现了对一个已打开的浏览器的控制。

更多需求可以自己在此基础上进行修改。

转自http://www.teachmeselenium.com/2018/08/11/how-to-connect-selenium-to-an-existing-browser-that-was-opened-manually/

翻译http://www.cnblogs.com/lovealways

补充:由于测试上面代码时,我还没安装chromedriver,于是用以下代码安装:

pip install chromedriver

又从这里找到http://chromedriver.storage.googleapis.com/index.html chromedriver.exe(win32版本的) 放在当前脚本目录中(后来发现其实也不用下载,可以用之前C#代码测试时的chromedriver.exe)

然而,上面的代码证明,没能通过WebDriver反爬检测。

fromselenium import webdriverfromselenium.webdriver.chrome.options import Options

chrome_options=Options()

chrome_options.add_experimental_option("debuggerAddress", "127.0.0.1:9222")

chrome_driver= "chromedriver.exe"driver= webdriver.Chrome(chrome_driver, chrome_options=chrome_options)

script= '''Object.defineProperty(navigator, 'webdriver', {get: () =>undefined

})'''driver.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {"source": script})

print(driver.title)

driver.get("https://intoli.com/blog/not-possible-to-block-chrome-headless/chrome-headless-test.html")

哈哈,通过检测!

python接管已经打开ie浏览器_使用selenium控制(接管)已打开的浏览器(chrome),并通过WebDriver值检测...相关推荐

  1. python控制已经打开的浏览器_使用python+selenium控制手工已打开的浏览器

    我们可以利用Chrome DevTools协议.它允许客户检查和调试Chrome浏览器. 打开cmd,在命令行中输入命令: chrome.exe --remote-debugging-port=922 ...

  2. python时间控件readonly属性_【Selenium】如何修改只读(readonly属性)元素的值

    现状:目前前端Web页面很多都用到了前端框架,如EasyUI.React.jQuery等等,在这样的大前提下,我们在定位元素时经常会遇到各种困难,如元素只读.元素不可见等等,这篇文章我们重点讲一下只读 ...

  3. selenium 如何在已打开的浏览器上直接自动化脚本

    selenium 如何在已打开的浏览器上继续运行自动化脚本? 前言: selenium测试网页每次登录都需要从头到尾登录到底,令人心烦: 此文章为直接在已打开.已登录/验证的网页运行提供方法: 一.配 ...

  4. python selenium+firefox 使用已打开的火狐浏览器进行操作(不需要每次都重新打开火狐)

    使用selenium操作时,每次使用webdriver.Firefox()都要重新弹出火狐窗口,效率非常低,所以我一直在查,selenium能不能在已打开的浏览器上操作,发现该模块没有这个功能,那说明 ...

  5. selenium:使用已打开的chrome浏览器

    前言 环境参考 selenium:我的第一个程序 使用已打开的chrome浏览器有啥好处 不用验证登陆状态,可以先登陆,再爬虫 不用反复开浏览器 开启命令行启动 chrome.exe 找到 chrom ...

  6. ubuntu命令行启动浏览器_在Ubuntu 18.04终端使用w3m浏览器,命令行模式浏览网页

    虽然w3m可能没有其他浏览器那么多的功能,但是w3m可以完成工作.您可以使用鼠标浏览网页,浏览器将呈现表格甚至接受cookie. 与ELinks2一样,w3m允许您使用外部程序查看页面上的图像. 但浏 ...

  7. 判断文件是否损坏_判断Excel文件是否已打开

    判断Excel文件是否已打开的示例,可下载源码. 演  示: 示例下载: 在屏幕左下角的 End推荐阅读Access训练营 从0基础开始,循序渐进,系统化的训练营课程,整合作业.课表.社群,为学员提供 ...

  8. selenium无头浏览器_无头Selenium浏览器

    selenium无头浏览器 重要要点 无头浏览器无需用户界面即可运行. 不再支持PhantomJS. JBrowser驱动程序是Java 8的低开销选项. 如果需要Java 11支持,所有当前的Jav ...

  9. python无法打开 firefox浏览器_【求助】pycharm不能打开火狐浏览器

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 Traceback (most recent call last): File "D:/tool/python/pycharm/py/day02 ...

最新文章

  1. c#devexpress GridContorl添加进度条
  2. LVI:激光雷达子系统的特征提取梳理
  3. [php错误]PHP中Notice: unserialize(): Error at offset of bytes in on line 的解决方法
  4. Linux根文件系统学习总结
  5. 《Python Cookbook 3rd》笔记(2.9):将Unicode文本标准化
  6. Android 驱动(16)---AOSP如何单独build kernel
  7. (五)使用模型单元测试进行MLOps持续交付
  8. spring mvc +cookie+拦截器功能 实现系统自动登陆
  9. Android 使用字符串动态获取资源ID
  10. C语言SM4算法实现(基于GMSSL)
  11. 云原生日志管理瑞士军刀 Fluent Operator 中文入门教程
  12. Glide 加载圆形图片
  13. webpackjsonp 还原_冰点还原标准版v8.56.020.5542——墨涩网
  14. 单细胞测序之scater包数据分析教程复现
  15. LoRa、Sigfox和NB-IoT,在物联网时代,这三种无线传输技术,具有什么优势?
  16. Mongoose Schema 和 SchemaTypes
  17. 《九日集训》第四天打卡
  18. STM32F103定时器详解
  19. Linux下搭建FTP服务器教程
  20. 最大扇入数怎么判断_如何判断,你的运动是否有效?

热门文章

  1. 如何完成计算机的安装程序,如何安装计算机系统程序.doc
  2. 网贷之家 python 爬取公开的平台数据
  3. 用sql查询姓名和身份证_查询,更新和身份
  4. 80秒验证13亿个身份证号码,包含省市县验证
  5. 解决Ubuntu18.04版本高分辨率下导致字体过小问题
  6. 自下而上和自上而下的注意力模型《Bottom-Up and Top-Down Attention for Image Captioning and Visual Question Answering》
  7. 干货!整理资源搜索网站
  8. PCB板ICT/FCT夹具应力如何测试?
  9. html中 导航条置顶的代码6,JS+CSS实现六级网站导航主菜单效果
  10. 区块链常用序列化分析