51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【好消息】企业内训服务上线啦!项目为王,自动化测试提升加速器 !横扫BAT,Python全栈测试开发技能大全
【第118期】:大厂测试平台建设与人才标准参与调查问卷 缔造行业趋势 月薪15K+的测试开发必备技能? 【活动】为视频UP主打CALL,互动领福利!
查看: 92|回复: 0

[原创] Selenium中关于Chrome浏览器的配置

[复制链接]
  • TA的每日心情
    擦汗
    5 天前
  • 签到天数: 512 天

    连续签到: 1 天

    [LV.9]测试副司令

    发表于 2021-2-23 10:34:53 | 显示全部楼层 |阅读模式
    前言
      在做web自动化的过程中,相信用到最多的浏览器就是chrome浏览器,那么在chrome中有许多关于selenium的配置内容,这个你知道吗?
      单个浏览器调试
      在编写自动化用例的过程中,经常会进行调式代码,正常情况下,当我们在写完用例,执行代码就会给我们重新打开一个浏览器,然后在进行一系列的操作。如果我们的需要调式的地方比较容易做到,这个方法就很容易,那如果我们需要调试的位置需要做很多前置操作,那么就浪费我们的时间。这个时候我们就可以通过打开浏览器调试功能,然后让浏览器直接在当前的页面进行debug。
      打开浏览器调试需要进行以下操作:
      1.将chrome浏览器安装地址配置到环境变量Path中。如果不知道chrome的地址安装在哪里,在浏览器中输入:chrome://version/进行查看

      2.打开cmd:
    1.  输入命令:chrome --remote-debugging-port=8210 --user-data-dir="F:\chrome_config"

    2.   # chrome:表示启动chrome浏览器

    3.   # remote-debugging-port:表示执行浏览器端口

    4.   # 8210为个人设置的端口

    5.   # --user-data-dir="F:\chrome_config":表示新建一个浏览器配置信息。
    复制代码
    3.在打开的浏览器中进行debug调试。  跳过禅道登录进行调试
      安静这里给大家举个小栗子,我们通过上述步骤打开禅道,然后登录。

      登录成功后,这里直接点击测试,进入到测试页面并每次都打印浏览器的标题来确定是否完成跳转。
    1. from selenium import webdriver

    2.   from selenium.webdriver.chrome.options import Options

    3.   options = Options()

    4.   # 启动的浏览器地址

    5.   options.debugger_address ='127.0.0.1:8210'

    6.   # 将浏览器配置信息进行添加

    7.   driver = webdriver.Chrome( chrome_options=options)

    8.   print('目前浏览器标题:'+driver.title)

    9.   # 点击测试

    10.   driver.find_element_by_xpath('//*[@href="/zentao/qa/"]').click()

    11.   print('现在的浏览器标题:'+driver.title)
    复制代码
    通过打印的内容可以看到,已经可以完成在已打开的浏览器中进行调试。

      配置浏览器信息
      通过selenium打开浏览器的时候,通常打开的都是新的浏览器,我们的浏览器配置信息,登录信息都是没有的,执行比较不方便,那么我们是否可以将浏览器的信息通过上述操作进行添加到selenium中呢?
      这里还是需要通过chrome://version/进行打开浏览器的配置信息,找到个人资料路径并记录下来。然后通过Options()方法进行添加到selenium配置信息中:
    1. from selenium import webdriver

    2.   # 浏览器配置路径

    3.   path = r'C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default'

    4.   options = webdriver.ChromeOptions()

    5.   options.add_argument('--user-data-dir='+path)

    6.   driver = webdriver.Chrome(chrome_options=options)

    7.   driver.get('https://www.baidu.com/')
    复制代码
     chrome浏览器无页面启动  我们在跑自动化的过程中,每次都要打开浏览器比较麻烦,也比较占用资源,有时候我们也只需要看到结果。这个时候就可以用到我们的chrome无页面启动内容了,所谓的无页面启动就是不会启动浏览器,全部都是看不到的,只是在后台进行了运行。
      环境配置
      1.和上面的几种方法都类似,需要将chrome的驱动放入到环境变量中。
      2.需要用到webdriver中的ChromeOptions()方法。
      3.将方法中的headless 参数配置为True。
      无页面启动进入到百度网站:
    1. from selenium import webdriver

    2.   # 导入chromeOptions方法

    3.   opt = webdriver.ChromeOptions()

    4.   # 将headless设置为True,此方法表示将chrome设置为无页面启动

    5.   opt.headless = True

    6.   # 将设置好的参数添加到chrome浏览器中进行启动

    7.   driver = webdriver.Chrome(options=opt)

    8.   driver.get('https://www.baidu.com')

    9.   print(driver.title)
    复制代码
    通过执行代码发现,浏览器没有进行打开并打印出了无页面启动后的网站标题。

      屏蔽浏览器检测框
      什么是浏览器检测框,就是我们在启动selenium的时候,看到一条地址栏下面存在一个弹框:Chrome正在受到自动测试软件的控制。有强迫症的小伙们肯定看着不舒服,当然我们也可以将他去除。
      参数配置
      1.将"excludeSwitches", ['enable-automation'] 配置到浏览器中。
      启动百度查看去除检测框
    1.  from selenium import webdriver

    2.   options = webdriver.ChromeOptions()

    3.   # 添加参数进行去除浏览器检测框

    4.   options.add_experimental_option("excludeSwitches", ['enable-automation'])

    5.   # 将参数添加到浏览器中

    6.   driver = webdriver.Chrome(chrome_options=options)

    7.   driver.get('https://www.baidu.com/')
    复制代码
    通过执行代码结果可以看到,检测框已经去除了。  关于chrome浏览器对于selenium的配置不仅仅只有这几个,还有其他的一些可以进行参考
      https://sites.google.com/a/chromium.org/chromedriver/capabilities






    回复

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2021-3-3 19:12 , Processed in 0.057580 second(s), 25 queries .

    Powered by Discuz! X3.2

    © 2001-2021 Comsenz Inc.

    快速回复 返回顶部 返回列表