Selenium 控制已经打开的浏览器

发表于:2019-8-08 10:59

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:te小星星    来源:简书

分享:
  前言
  有时候网站需要扫码登录,使用selenium启动的浏览器进程可能没法完成登录。这时就需要先手动启动浏览器扫码登录后,再用selenium进行操作。
  操作步骤
  1.找到本地安装的浏览器启动路径,例如Chrome
   # windows
  C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
  # mac
  /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome
  2.通过命令行启动ChromeDbug模式
   # windows
  $ C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --remote-debugging-port=9222
  # mac
  $ /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome -remote-debugging-port=9222
  # 注:
  1. 启动浏览器dbug模式时需要把浏览器打开的进程先全部关闭。
  2. 9222是默认端口,可以随意修改。但别使用已经被占用的端口。
  更多chromeDbug操作参考 chromedevtools
  3.连接调试开关打开的chrome
   options = webdriver.ChromeOptions()
  options.debugger_address = "127.0.0.1:9222"
  self.driver = webdriver.Chrome(options=options)
  实例企业微信
  1.先执行命令启动浏览器DBUG模式
 $ C:\Program Files (x86)\Google\Chrome\Application>chrome.exe --remote-debugging-port=9222
  2.扫码登录企业微信
  企业微信首页
  3.使用selenium点击通讯录进入通讯录页面
   from selenium import webdriver
  from selenium.webdriver.common.by import By
  class TestWX:
  # 初始化,控制Chrome
  def setup_method(self):
  options = webdriver.ChromeOptions()
  options.debugger_address = "127.0.0.1:9222"
  self.driver = webdriver.Chrome(options=options)
  self.url = "https://work.weixin.qq.com/wework_admin/frame#index"
  self.driver.get(self.url)
  self.driver.implicitly_wait(10)
  # # 关闭浏览器
  # def teardown_method(self):
  #     self.driver.quit()
  def test_a(self):
  # 点击通讯录
  self.driver.find_element(By.XPATH, '//*[@id="menu_contacts"]/span').click()
  执行结果
  企业微信通讯录页面
  ok,以上就完成了通过selenium控制已经打开的页面。
  总结
  启动一个Chrome的debug进程
  通过webdriver连接到Chrome的9222端口
  selenium通过webdriver控制Chrome

     上文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号