多测师是一家拥有先进的教学理念,强大的师资团队,业内好评甚多的接口自动化测试培训机构!

17727591462

联系电话

您现在所在位置:接口自动化测试培训 > 新闻资讯

Selenium自动化测试中无头浏览器的应用

更新时间:2021-09-09 07:38:03 作者:admin 浏览:585

Selenium自动化测试中无头浏览器的应用

  由于在实际的测试环境下,使用图形界面的浏览器占用测试机资源过大效率低, 一般来说,在调试好脚本的基础上,抛开浏览器图形界面执行测试用例的。

  现在可以使用的无头浏览器有很多,这里介绍一个使用方便的无头浏览器的解决方案 -- 使用Chrome的禁用图形界面运行。

  一般使用Chrome进行脚本运行时,使用的是Chrome类实例化的浏览器对象, 其实还有另一个类提供了对浏览器的配置 -- ChromeOptions(selenium.webdriver.ChromeOptions)

  from selenium import webdriver

  # 创建出启动浏览器所需要配置 -- 实例化ChromeOptions浏览器选项对象

  co = webdriver.ChromeOptions()

  # 构建配置信息 -- 通过浏览器选项对象调用配置方法

  co.headless = True # 设置浏览器为无头模式

  # 将配置信息加入到浏览器启动 -- 实例化浏览器驱动对象添加属性option值

  driver = webdriver.Chrome(options=co)

Selenium自动化测试中无头浏览器的应用

  # 设置浏览器页面大小为常用窗口大小1366*768

  driver.set_window_size(1366, 768)

  # 打开页面, 进行页面操作

  driver.get("http://www.baidu.com")

  # 业务操作

  driver.find_element_by_id("kw").send_keys("chrome")

  driver.get_screenshot_as_file("./a.png")

  # 退出浏览器驱动对象

  driver.quit()

  首先: 明确Selenium的编写自动化测试脚本的基本步骤

  模拟用户打开浏览器 -- 实例化浏览器驱动对象

  模拟输入网址操作 -- 驱动对象调用get方法

  模拟用户页面操作 -- 驱动对象页面定位和元素操作

  模拟用户关闭浏览器 -- 驱动对象调用quit方法

  from selenium import webdriver

  # 1. 模拟用户打开浏览器 -- 实例化浏览器驱动对象

  driver = webdriver.Chrome()

  # 2. 模拟输入网址操作 -- 驱动对象调用get方法

  driver.get("http://www.baidu.com")

  # 3. 模拟用户页面操作 -- 驱动对象页面定位和元素操作

  driver.find_element_by_id("kw").send_keys("chrome")

  driver.get_screenshot_as_file("./a.png")

  # 4. 模拟用户关闭浏览器 -- 驱动对象调用quit方法

  driver.quit()

  然后: 针对驱动对象的实例化操作进行扩展 -- ChromeOptions

  上面浏览器是默认启动的浏览器 -- 没有进行任何配置 -- 如何实现浏览器的配置启动呢?

  创建出启动浏览器所需要配置 -- 实例化ChromeOptions浏览器选项对象

  构建配置信息 -- 通过浏览器选项对象调用配置方法

  将配置信息加入到浏览器启动 -- 实例化浏览器驱动对象添加属性option值

  from selenium import webdriver

  # 创建出启动浏览器所需要配置 -- 实例化ChromeOptions浏览器选项对象

  co = webdriver.ChromeOptions()

  # 构建配置信息 -- 通过浏览器选项对象调用配置方法

  co.headless = True # 设置浏览器为无头模式

  # 将配置信息加入到浏览器启动 -- 实例化浏览器驱动对象添加属性option值

  driver = webdriver.Chrome(options=co)

  # 打开页面, 进行页面操作

  driver.get("http://www.baidu.com")

  # 业务操作

  driver.find_element_by_id("kw").send_keys("chrome")

  driver.get_screenshot_as_file("./a.png")

  # 退出浏览器驱动对象

  driver.quit()

  最后: 优化一下上面的代码,窗口太小无法看到整个页面 -- 最大化浏览器窗口

  注意: 这里有一个有意思的现象: driver.maximize_window() 在这里是无法起效的。所以需要使用另一个控制窗口大小的方法driver.setwindowsize(x,y);

  from selenium import webdriver

  # 创建出启动浏览器所需要配置 -- 实例化ChromeOptions浏览器选项对象

  co = webdriver.ChromeOptions()

  # 构建配置信息 -- 通过浏览器选项对象调用配置方法

  co.headless = True # 设置浏览器为无头模式

  # 将配置信息加入到浏览器启动 -- 实例化浏览器驱动对象添加属性option值

  driver = webdriver.Chrome(options=co)

  # 设置浏览器页面大小为常用窗口大小1366*768

  driver.set_window_size(1366, 768)

  # 打开页面, 进行页面操作

  driver.get("http://www.baidu.com")

  # 业务操作

  driver.find_element_by_id("kw").send_keys("chrome")

  driver.get_screenshot_as_file("./a.png")

  # 退出浏览器驱动对象

  driver.quit()

  如果需要更多浏览器设置,最好的方法可以进入ChromeOptions类中读懂代码,可以学到很多。以上是关于Selenium自动化测试中无头浏览器应用的介绍,由多测师亲自撰写。  http://www.aichudan.com/

联系电话

17727591462

返回顶部