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

17727591462

联系电话

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

Selenium+Python浏览器调用:伪浏览器

更新时间:2022-04-25 09:09:38 作者:多测师 浏览:301

  因为移动端的driver目前没有接触,所以主要介绍PC端driver,PC端的driver都是基于浏览器的,主要分为2种类型:

  一种是真实的浏览器driver:safari、firefox、ie、chrome等

  比如:safari、firefox、ie、chrome都是通过浏览器原生组件来调用浏览器的原生API,这些driver都是直接启动并通过调用浏览器的底层接口来驱动浏览器的,因此具有最真实的用户场景模拟,主要用于进行web的兼容性测试使用。

  一种是伪浏览器driver:htmlunit、PhantomJS

  selenium支持的伪浏览器包括htmlunit、PhantomJS;他们都不是真正的在浏览器运行、都没有GUI而是具有支持html、js 等解析能力的类浏览器程序;

  这些程序不会渲染出网页的显示内容,但是支持页面元素的查找、JS的执行等;由于不进行css及GUI渲染,所以运行效率上会 比真实浏览器要快很多,主要用在功能性测试上面。

Selenium+Python浏览器调用:伪浏览器

  下面主要介绍两种伪浏览器的简单调用方法和对比,后续会单独介绍Firefox和Ie浏览器调用的详细内容及各类问题解决方法。

  HTMLunit调用

  HtmlUnit 官方网站:http://htmlunit.sourceforge.net/

  本文采用本地的API查看地址来测试,可参考:前面的Selenium Python浏览器调用:Firefox文章中“如何查看python selenium的API来开启地址

  方法一:

  #coding=utf-8

  from selenium import webdriver

  from time import ctime

  from time import sleep

  from selenium.webdriver.common.desired_capabilities import DesiredCapabilities

  print ctime()

  driver=webdriver.Remote(command_executor="http://127.0.0.1:5555/wd/hub",desired_capabilities=DesiredCapabilities.HTMLUNIT)

  driver.get("http://127.0.0.1:4567")

  driver.find_element_by_partial_link_text("selenium").click()

  print driver.title

  print driver.current_url

  print driver.name

  print ctime()

  driver.close()

  方法二:

  #coding=utf-8

  from selenium import webdriver

  from time import ctime

  from time import sleep

  print ctime()

  driver = webdriver.Remote(

  command_executor=' http://127.0.0.1:5555/wd/hub',

  desired_capabilities={'platform': 'ANY',

  'browserName': 'htmlunit',

  'version': '',

  'javascriptEnabled': True

  })

  driver.get("http://127.0.0.1:4567")

  driver.find_element_by_partial_link_text("selenium").click()

  print driver.title

  print driver.current_url

  print driver.name

  print ctime()

  driver.close()

  因为测试过程无界面,所以打印时间,以及页面title和url来判断执行结果:

  Wed Oct 14 17:29:22 2015

  Python: package selenium

  http://127.0.0.1:4567/selenium.html

  htmlunit

  Wed Oct 14 17:29:22 2015

  运行前需要启动selenium server,启动方法如下:

  1、C:\Users\admin>java -jar selenium-server-standalone-2.45.0.jar -role hub

  2、C:\Users\admin>java -jar selenium-server-standalone-2.45.0.jar node -port 5555 -hub http://127.0.0.1:4444/grid/register

  PhantomJS 调用

  PhantomJS 官方网站:http://phantomjs.org/

  在使PhantomJS 之前,需要先下载。PhantomJS 支持Windwos、MAC、Linux 等平台,我们可以根据自己的环境选择相应的版本进行下载,下载完成解压会得phantomjs-2.0.0-windows 目录,在bin 目录会看到phantomjs.exe 程序,将当前目录添加到系统环境变量path 下。(或直接将phantomjs.exe 丢到Python 的安装目录下,因为我们最开始已将Python 添加到了系统环境变量的path 下)。

  下面就可以使用phantomjs 驱动进行测试了。

  #coding=utf-8

  from selenium import webdriver

  from time import ctime

  from time import sleep

  print ctime()

  driver=webdriver.PhantomJS(executable_path="c:\\python27\\phantomjs.exe")

  driver.get("http://127.0.0.1:4567")

  driver.find_element_by_partial_link_text("selenium").click()

  print driver.title

  print driver.current_url

  print driver.name

  driver.get_screenshot_as_file("c:\\photo.jpg")

  print ctime()

  driver.close()

  运行结果如下,另外在C盘下可以看到截取的图片,与实际操作的界面相符:

  Wed Oct 14 17:29:50 2015

  Python: package selenium

  http://127.0.0.1:4567/selenium.html

  phantomjs

  Wed Oct 14 17:29:53 2015

  浏览器对比

  下面在HTMLunit、PhantomJS和Firefox中运行同一个脚本(使用上文中HTMLunit的演示脚本)

  三者的时间分别为:HTMLunit:0s,PhantomJS:3s,Firefox:8s

  以上内容为大家介绍了自动化测试中的Selenium+Python浏览器调用:伪浏览器,本文由多测师亲自撰写,希望对大家有所帮助。了解更多自动化测试相关知识:https://www.aichudan.com/xwzx/

联系电话

17727591462

返回顶部