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渲染,所以运行效率上会 比真实浏览器要快很多,主要用在功能性测试上面。
下面主要介绍两种伪浏览器的简单调用方法和对比,后续会单独介绍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/