Selenium控制已打开的浏览器-python-edge

Selenium控制已打开的浏览器-python-edge

  • 前言
  • 通过命令启动浏览器
  • Selenium打开浏览器
  • 后话
  • 推荐阅读

前言

诡异的验证码和微信扫码登录着实让爬虫难堪,那是否可以在已经打开的浏览器基础上,继续运行自动化脚本?通过手工登录后,再让脚本执行程序,这样可以解决很大的一个痛点。

通过命令启动浏览器

右键点击桌面上的“Edge浏览器”,点击“属性”。
Selenium控制已打开的浏览器-python-edge_第1张图片

复制“起始位置”路径。
插句话:点击“打开文件夹所在路径”,你会看到一个msedge.exe,后面有用
Selenium控制已打开的浏览器-python-edge_第2张图片
搜索“环境”,进入“编辑系统环境变量”。
Selenium控制已打开的浏览器-python-edge_第3张图片
点击“环境变量”。

Selenium控制已打开的浏览器-python-edge_第4张图片
在“系统变量”,找到“path”,双击进入编辑区域。
Selenium控制已打开的浏览器-python-edge_第5张图片
把起始位置路径粘贴进去,点击确定。

Selenium控制已打开的浏览器-python-edge_第6张图片

打开cmd输入命令启动Edge浏览器

  • --remote-debugging-port 是指定运行端口,只要没被占用就行
  • --user-data-dir 指定运行浏览器的运行数据,不影响系统原来的数据

按“ctrl+r”,在对话窗口输入“cmd”,回车。
在控制台输入,

msedge.exe --remote-debugging-port=9222 --user-data-dir="D:\python\seleniumEdge"

注意:

  • 执行文件是msedge.exe不是edge.exe
  • 执行命令前,需要创建一个文件夹,存放新的浏览器数据,新文件夹地址"D:\python\seleniumEdge"
    Selenium控制已打开的浏览器-python-edge_第7张图片
    浏览器打开成功。

Selenium打开浏览器

from selenium.webdriver import Edge
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
#用于选择登录端口
from selenium.webdriver.edge.options import Options
#造浏览器配置对象
Edge_op = Options()
#配置浏览器
#"127.0.0.1:9222"其中,9222是浏览器的运行端口
Edge_op.add_experimental_option("debuggerAddress","127.0.0.1:9222")
#让浏览器带着这个配置运行
web = Edge(options=Edge_op)
#测试环节
#通过百度页面,搜索烤鸭
web.find_element(by=By.XPATH,value='//*[@id="kw"]').send_keys("烤鸭",Keys.ENTER)

效果:“Edge正由自动测试软件控制”没有出现,和真人登录一样

Selenium控制已打开的浏览器-python-edge_第8张图片
完事!!!

后话

有点小缺陷,每次运行都需要进入控制台输入指令。但是,可以尝试使用os模块执行打开浏览器的流程。
虽然但是,selenium还是挺香的!!!

推荐阅读

  • selenium Edge浏览器规避检测
  • Selenium页面点击玄学
  • python奇葩反爬-你是故意的还是不小心的
  • 正则(re)硬核解析提速方案,爬虫,百万字符

你可能感兴趣的:(Selenium,python,selenium,edge,测试工具,开发语言)