.

python自动化,Helium凭什么取

作者:星安果

来源:AirPython

1.python自动化:Helium是什么?

Helium是一款Web端自动化开源框架,全称是:Selenium-Python-Helium,从名字上就可以看出,Helium似乎和Selenium息息相关

确实,Helium针对Selenium进行了封装,它屏蔽了Selenium很多实现细节,提供了更加简洁直观的API,更方便我们进行Web端的自动化

官方表示,要实现同样的功能,Helium相比Selenium要少30%-50%的代码

目前,Helium仅支持Chrome和FireFox

2.优缺点

Helium主要包含下面6个优点:

Helium自带WebDriver,不需要下载、配置浏览器驱动内嵌页面iframe页面元素直接操作,不需要使用switch_to.frame()切换iframe窗体管理更方便,可以直接使用窗口标题或部分标题内容来切换窗体隐式等待,针对某个元素执行点击操作,Selenium如果元素没有出现,脚本会执行失败;而Helium默认最多等待10s,等待元素出现后立马执行点击操作显式等待,Helium提供更加优雅的API来等待页面元素出现API更简洁直观,代码量少Helium主要缺点,体现在:

由于封装,屏蔽了很多细节,所以它不合适二次开发目前仅支持Chrome和FireFox浏览器版本更新慢、遗留Bug及文档少3.准备一下

切换到对应的虚拟环境下,通过pip命令安装依赖即可

#安装依赖pip3installhelium

接着,我们在IDE中,使用helium.__all__打印出它包含的属性及方法

我们发现,Helium包含的操作动作、控件对象、键盘操作关键字基本覆盖了大部分的自动化操作场景

4.SeleniumVSHelium

是骡子是马,拉出来溜溜~

接下来,我们以登录邮箱为例,来比较Selenium和Helium

1、传统Selenium实现

首先,我们需要下载并配置WebDriver,然后实例化WebDriver对象,打开邮箱登录的主页面

fromseleniumimportwebdriver#实例化Driverdriver=webdriver.Chrome()#隐式等待10sdriver.implicitly_wait(10)#打开主页面driver.get(home_url)

通过观察网页元素,发现输入框区域被包裹在iframe内嵌页面中

所以,我们需要使用switch_to.frame()函数切换到对应的iframe,才能操作iframe内部的元素

fromselenium.webdriver.


转载请注明:http://blog.hzbdfjk.com/xgyy/7024.html

  • 上一篇文章:
  • 下一篇文章: 没有了