Selenium 操作已经打开的浏览器
背景
伴随着 IE 的结束,之前很多用在 IE 上面的自动化(例如获取当前打开页面,并进行相关操作)都已经不能再继续使用。
现在需要切换到谷歌浏览器或者 Edge。
实现思路
IE 时代,我们可以通过 WIN32 的句柄来获取已经打开的页面,那么在 Chrome 上,是否也可以呢?WIN32 基本上很难,如果谁会,欢迎在评论区留言学习一下。因此我们考虑使用 Selenium 接管已经打开的页面。
如果要实现这一操作,我们就要用到它的 debug 模式。
右键 Chrome 浏览器,在属性里面加入如下内容
我们可以通过http://localhost:9222/json这个地址来验证配置是否成功
正常情况下应该可以看到如下内容
这里显示的内容,和你打开的网页有关,总体就是一个 JSON 数据。
Python 代码示例
我们以https://www.eki-net.com/这个网址作为演示,我们会在选择车票的页面进行接管,并将"自由席"的结果展开。
我们通过 Chrome 的开发者工具可以确认到"開く"按钮的 ID 为"selService_formTrainSeatSelHeaderBtn_0_3"
这里需要注意的是,我们最好将"关闭 Google Chrome 后继续运行后台应用"关闭掉,因为有点时候会导致端口被占用的情况。
设置--> 高级-->系统
如果这篇文章对你有所帮助,欢迎转发给有需要的朋友。
我是 Tango,一个热于分享实用技术的程序猿,我们下期见。
版权声明: 本文为 InfoQ 作者【IT蜗壳-Tango】的原创文章。
原文链接:【http://xie.infoq.cn/article/8b7140ca4d51f79c61bb39233】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论