• 使用selenium控制已打开的浏览器


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

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

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

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

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

    右键打开chrome所在位置

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

    chrome.exe --remote-debugging-port=9222 --user-data-dir="C:selenumAutomationProfile"

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

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

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

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

    from selenium import webdriver
    from selenium.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)

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

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

    人生苦短,慢慢潇洒。 www.zwnsyw.com
  • 相关阅读:
    如何实现1080P延迟低于500ms的实时超清直播传输技术
    直播体验深度优化方案——连麦互动直播
    前向纠错码(FEC)的RTP荷载格式
    C++通过COM接口操作PPT
    neo4j的搭建和实例使用
    【neo4j】neo4j Desktop1.1.9,windows 安装
    Neo4j删除节点和关系、彻底删除节点标签名
    知识图谱赵军学习笔记(五)--实体消歧
    实体消歧简介
    svn服务器时间与本地时间不同步解决
  • 原文地址:https://www.cnblogs.com/zwnsyw/p/14443539.html
Copyright © 2020-2023  润新知