• 14
  • 14
分享

  前言

  在做web自动化的过程中,相信用到最多的浏览器就是chrome浏览器,那么在chrome中有许多关于selenium的配置内容,这个你知道吗?

  单个浏览器调试

  在编写自动化用例的过程中,经常会进行调式代码,正常情况下,当我们在写完用例,执行代码就会给我们重新打开一个浏览器,然后在进行一系列的操作。如果我们的需要调式的地方比较容易做到,这个方法就很容易,那如果我们需要调试的位置需要做很多前置操作,那么就浪费我们的时间。这个时候我们就可以通过打开浏览器调试功能,然后让浏览器直接在当前的页面进行debug。

  打开浏览器调试需要进行以下操作:

  1.将chrome浏览器安装地址配置到环境变量Path中。如果不知道chrome的地址安装在哪里,在浏览器中输入:chrome://version/进行查看

1-1.png

  2.打开cmd:

  输入命令:chrome --remote-debugging-port=8210 --user-data-dir="F:\chrome_config"
  # chrome:表示启动chrome浏览器
  # remote-debugging-port:表示执行浏览器端口
  # 8210为个人设置的端口
  # --user-data-dir="F:\chrome_config":表示新建一个浏览器配置信息。

  3.在打开的浏览器中进行debug调试。

  跳过禅道登录进行调试

  安静这里给大家举个小栗子,我们通过上述步骤打开禅道,然后登录。

1-2.png

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

  from selenium import webdriver
  from selenium.webdriver.chrome.options import Options
  options = Options()
  # 启动的浏览器地址
  options.debugger_address ='127.0.0.1:8210'
  # 将浏览器配置信息进行添加
  driver = webdriver.Chrome( chrome_options=options)
  print('目前浏览器标题:'+driver.title)
  # 点击测试
  driver.find_element_by_xpath('//*[@href="/zentao/qa/"]').click()
  print('现在的浏览器标题:'+driver.title)

  通过打印的内容可以看到,已经可以完成在已打开的浏览器中进行调试。

1-3.png

  配置浏览器信息

  通过selenium打开浏览器的时候,通常打开的都是新的浏览器,我们的浏览器配置信息,登录信息都是没有的,执行比较不方便,那么我们是否可以将浏览器的信息通过上述操作进行添加到selenium中呢?

  这里还是需要通过chrome://version/进行打开浏览器的配置信息,找到个人资料路径并记录下来。然后通过Options()方法进行添加到selenium配置信息中:

  from selenium import webdriver
  # 浏览器配置路径
  path = r'C:\Users\Administrator\AppData\Local\Google\Chrome\User Data\Default'
  options = webdriver.ChromeOptions()
  options.add_argument('--user-data-dir='+path)
  driver = webdriver.Chrome(chrome_options=options)
  driver.get('https://www.baidu.com/')

  chrome浏览器无页面启动

  我们在跑自动化的过程中,每次都要打开浏览器比较麻烦,也比较占用资源,有时候我们也只需要看到结果。这个时候就可以用到我们的chrome无页面启动内容了,所谓的无页面启动就是不会启动浏览器,全部都是看不到的,只是在后台进行了运行。

  环境配置

  1.和上面的几种方法都类似,需要将chrome的驱动放入到环境变量中。

  2.需要用到webdriver中的ChromeOptions()方法。

  3.将方法中的headless 参数配置为True。

  无页面启动进入到百度网站:

  from selenium import webdriver
  # 导入chromeOptions方法
  opt = webdriver.ChromeOptions()
  # 将headless设置为True,此方法表示将chrome设置为无页面启动
  opt.headless = True
  # 将设置好的参数添加到chrome浏览器中进行启动
  driver = webdriver.Chrome(options=opt)
  driver.get('https://www.baidu.com')
  print(driver.title)

  通过执行代码发现,浏览器没有进行打开并打印出了无页面启动后的网站标题。

1-4.png

  屏蔽浏览器检测框

  什么是浏览器检测框,就是我们在启动selenium的时候,看到一条地址栏下面存在一个弹框:Chrome正在受到自动测试软件的控制。有强迫症的小伙们肯定看着不舒服,当然我们也可以将他去除。

  参数配置

  1.将"excludeSwitches", ['enable-automation'] 配置到浏览器中。

  启动百度查看去除检测框

  from selenium import webdriver
  options = webdriver.ChromeOptions()
  # 添加参数进行去除浏览器检测框
  options.add_experimental_option("excludeSwitches", ['enable-automation'])
  # 将参数添加到浏览器中
  driver = webdriver.Chrome(chrome_options=options)
  driver.get('https://www.baidu.com/')

  通过执行代码结果可以看到,检测框已经去除了。

  关于chrome浏览器对于selenium的配置不仅仅只有这几个,还有其他的一些可以进行参考

  https://sites.google.com/a/chromium.org/chromedriver/capabilities



作者:测试安静   

来源:51Testing软件测试网原创

  • 【留下美好印记】
    赞赏支持
登录 后发表评论
+ 关注

热门文章

    最新讲堂

      • 推荐阅读
      • 换一换
          •        以前,写完一段代码我也是直接调用或者实例化一下,发现过了就把测试相关部分删了。今年的不幸与坎坷使我有很长一段时间去思考人生,不想将就了,鲁棒健壮的程序,开发和测试应该是分得很开的,于是我选择jest去做单元测试这件事。       为什么要做单元测试       在开始之前,我们先思考这样一个问题,我们为什么要做单元测试?       不扯犊子直接说吧,第一点,用数据、用茫茫多的测试用例去告诉使用者,你的程序是多么鲁棒健壮...
            1 1 1010
            分享
          • 一:需求分析了解熟悉业务,分析需求测试点确认功能(业务功能,辅助功能,数据约束,易用性需求,编辑约束,参数需求,权限需求,性能约束)场景分析(考虑场景调用者和系统内部各个场景之间联系)挖掘隐性需求(常用业务流程以及各分支)二:测试计划1、编写目的此文档根据项目需求文档,制定测试策略、评估测试风险,确定所需的资源,并对测试的工作量进行估计,进行人员和进度安排,并且列出测试项目的可交付元素。2、参考文档详细设计文档,设计原型3、测试概要(1)测试目标通过测试,达到以下目标:测试已实现的产品是否达到设计的要求,包括:各个功能点是否以实现,业务流程是否正确。产品规定的操作和系统运行稳定。Bug数和缺陷...
            0 1 2261
            分享
          •   在备受瞩目的特斯拉AI日上,特斯拉CEO马斯克承诺:“通往可持续能源的道路清晰明了。”  刚刚上任的特斯拉全球生产负责人朱晓彤表示,特斯拉正在尽一切努力削减成本。  特斯拉正面临激烈的市场竞争。马斯克曾表示,特斯拉电动车的价格“高得令人尴尬”,可能会损害需求。  在AI日上,高管们提出了关于特斯拉如何扩大中国市场份额的问题,马斯克将问题抛给了朱晓彤。朱晓彤说道:“只要能以更低的价格提供有价值的产品,你就不必担心需求。”  特斯拉已经在电动汽车制造和利润方面遥遥领先于其竞争对手。该公司总工程师Lars Moravy表示,公司希望以目前Model 3或Model Y一半成本制造“下一代”汽车,...
            0 0 658
            分享
          •   在国内的测试行业里面,很多情况下就是“为了做自动化测试而去做自动化测试”这就是典型的本末倒置。无论你在测试的过程中采取什么样的方案和手段,核心都是为了业务去服务的,脱离业务,手段再厉害也没有用。  不得不说,很多情况下,我们的老板们对于自动化并没有一个合理的预期。很多老板想的是:搞了自动化测试就可以不用手工测试了嘛,然后再招几个价钱低的测试就行了。这是大错特错的。  关于领导认知层面的问题:  1、不清楚自动化测试目标是什么,对于达到目标所要进行的投入也没有计划;  2、盲目幻想,认为自动化测试能够省钱,想着搞起来自动化,省掉多少多少人力成本;  3、自动化测试如果做的成功的话,是可以节省...
            0 0 645
            分享
          •   据报道,美国国家劳动关系委员会的记录显示,两名特斯拉员工12月初向该委员会投诉称,他们因抱怨公司的政策而遭到非法解雇。  根据提交的文件,这两名员工表示,他们在讨论公司的劳动条件后遭到解雇。他们谈论的话题包括“特斯拉未能执行防止骚扰的政策,以及在新冠病毒疫情后重返办公室的政策执行情况”。根据美国劳动法,讨论劳动条件的行为应当受到保护。  特斯拉尚未对此做出回应。  根据他们律师提供的新闻稿,这两名员工参与起草了给特斯拉高管团队的邮件。他们在内部聊天群讨论相关情况后遭到解雇,当时这封邮件尚未开始传阅。  其中一封信呼吁特斯拉调整5月份宣布的严格的重返办公室政策,该政策要求特斯拉所有员工每周在...
            0 0 653
            分享
      • 51testing软件测试圈微信