美文网首页
在自动化测试中怎么解决重开浏览器的烦恼

在自动化测试中怎么解决重开浏览器的烦恼

作者: 吱吱菌啦啦 | 来源:发表于2022-05-01 10:24 被阅读0次
    • 场景:用selenium做自动化测试,每次都会开一个新的webdriver浏览器,这个浏览器是干净的,不带任何缓存,而大多数测试场景需要以登录作为前置条件,该如何解决这种问题?
    • A:selenium中通过配置,可以复用浏览器,解决cookie问题。
    以mac为例,windows配置环境变量略微有区别~

    1.找到Chrome的启动路径,配置环境变量,重启terminal
    export PATH=$PATH:/Applications/Google\ Chrome.app/Contents/MacOS/

    2.退出所有的浏览器(这一步很重要,执行第三步时一定要退出所有浏览器,否则3无法启起来)

    3.命令行启动远程浏览器Google\Chrome --remote-debuging-port=9222端口不一定是9222,可以调整,只要不被占用就行,当localhost:9222是启动状态时,用例运行时就可以复用浏览器

    4.运行测试代码,进行简单配置,就会在已有浏览器窗口中执行用例

    from time import sleep
    from selenium import webdriver
    from selenium.webdriver.chrome.options import Options
    
    def test_chrome():
        """
        在已有浏览器中运行用例,先启动本地浏览器服务 Google\ Chrome --remote-debugging-port=9222
        本地浏览器配置的端口需要和启动的浏览器端口保持一致
        :return:
        """
        option = Options()
        option.debugger_address = "localhost:9222"
        driver = webdriver.Chrome(options=option)
        driver.get('https://www.baidu.com')
        sleep(5)
    
    

    以上配置完成之后,如果测试页面是登录状态,再执行该页面的case就能带上cookie了。

    5.如果运行用例还是想用webdriver开一个新的不带缓存的浏览器,去掉配置就行

    from time import sleep
    from selenium import webdriver
    
    def test_chrome():
        """
        在已有浏览器中运行用例,先启动本地浏览器服务 Google\ Chrome --remote-debugging-port=9222
        本地浏览器配置的端口需要和启动的浏览器端口保持一致
        :return:
        """
        driver = webdriver.Chrome()
        driver.get('https://www.baidu.com')
        sleep(5)
    

    相关文章

      网友评论

          本文标题:在自动化测试中怎么解决重开浏览器的烦恼

          本文链接:https://www.haomeiwen.com/subject/uplsyrtx.html