前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >利用Headless实现无UI自动化

利用Headless实现无UI自动化

作者头像
iTesting
发布2019-10-29 16:18:13
9320
发布2019-10-29 16:18:13
举报
文章被收录于专栏:iTestingiTesting

iTesting,爱测试,爱分享 在做自动化的时, 偶尔你需要打开一个页面获取某些字段,但由于某些原因(通常是安全), 你又不想这个页面展示出来, 这个时候,不打开浏览器而使用浏览器就是刚需了。 我本来以为这个是很基础的知识,这两天一直有人问,那么就干脆写下来吧。

Headless的浏览器我们以前经常用PhantomJS, 但随着google宣布支持headless后, PhantomJS也停止更新了,那么是时候使用headless了。

什么是Headless chrome呢?

Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有 Chrome 支持的特性运行你的程序。相比于现代浏览器,Headless Chrome 更加方便测试 web 应用,获得网站的截图,做爬虫抓取信息等。相比于出道较早的 PhantomJS,SlimerJS 等,Headless Chrome 则更加贴近浏览器环境.

Headless有什么好处呢?

最直观的就是由于不需界面,所以速度上比普通浏览器稍快,也不会因为误操作界面导致人为错误。 另外,headless在爬虫程序,和网页截图时也经常用。

如何使用? chrome 的headless模式实现起来很简单,无需下载, 只要你运行的机器上有最新版的chrome即可(事实上59版本以后都支持), 当然了你需要crhome driver在你python安装路径的根目录下。。 下面我们以百度首页为例,打印出搜索框的文本“百度一下”。

代码语言:javascript
复制
options = webdriver.ChromeOptions()

options.add_argument('--headless')

options.add_argument('--disable-gpu')

driver = webdriver.Chrome(chrome_options=options)

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

time.sleep(1)

print(driver.find_element_by_xpath(".//*[@id='su']").get_attribute("value"))

是不是很简单?全程没有看到网页被打开,但是我们还是获得了我们需要的元素。

事实上, headless 不仅仅chrome支持, firefox也支持。用法如下:

代码语言:javascript
复制
import time

from selenium import webdriver

options = webdriver.FirefoxOptions()

options.add_argument('--headless')

options.add_argument('--disable-gpu')

driver = webdriver.Firefox(firefox_options=options)

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

time.sleep(1)

print driver.find_element_by_xpath(".//*[@id='su']").get_attribute("value")
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 iTesting 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档