helium 携带 cookies 登录、helium切换Selenium

helium 练习

*** 携带 cookies 登录 ***

主要在于: -切换Selenium 命令-

试了 helium自动化测试公众号(搜到他家教程多点,不是推广 )介绍了两种方法(方法一、方法二),
但是携带cookies一直失败, 最终使用 <driver.get(url)>在这花费的时间有点久。

关于怎么加载cookies.pickle 之前有写过
import os
import pickle
from helium import *


def read_cookie():
    """ 读取 cookies """
    if os.path.exists('D:/items/小工具/36739.pickle'):
        read_path = open('D:/items/小工具/36739.pickle', 'rb')
        tb_cookies = pickle.load(read_path)
        return tb_cookies
    else:
        print('没有发现文件  ! ')


def load_cookie_one():
    """ 方法一 """
    tb_cookie = read_cookie()
    start_chrome('url')
    driver = get_driver()  # 得到driver
    for cookie in tb_cookie:
        driver.add_cookie({
     
            "domain": '.shiguangkey.com',
            "name": cookie,
            "value": tb_cookie[cookie]}, )
    driver.get('url')


def load_cookie_two():
    """ 方法二  """
    tb_cookie = read_cookie()
    driver = start_chrome('url')
    set_driver(driver)  # 这一步好像有点多余,但是公众号上面有这个
    for cookie in tb_cookie:
        driver.add_cookie({
     
            "domain": '.shiguangkey.com',
            "name": cookie,
            "value": tb_cookie[cookie]}, )
    driver.get('url')


def load_cookie_zero():
    """ 方法零 """
    tb_cookie = read_cookie()  # 获取cookies pickle文件里面
    driver = start_chrome('url')
    # driver = 等于方法一 driver = get_driver()
    for cookie in tb_cookie:
        driver.add_cookie({
     
            "domain": '.shiguangkey.com',
            "name": cookie,
            "value": tb_cookie[cookie]}, )
    # refresh()  # 使用刷新还是进不了带有cookies网页,主要就是在这一步错了
    driver.get('url')


load_cookie_zero()
load_cookie_one()
load_cookie_two()

关于helium与selenium 区别:

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

  • Helium 自带 WebDriver,不需要下载、配置浏览器驱动

  • 内嵌页面 iframe 页面元素直接操作,不需要使用 switch_to.frame() 切换 iframe

  • 窗体管理更方便,可以直接使用窗口标题或部分标题内容来切换窗体

  • 隐式等待,针对某个元素执行点击操作,Selenium 如果元素没有出现,脚本会执行失败;而 Helium 默认最多等待10s,等待元素出现后立马执行点击操作

  • 显式等待,Helium 提供更加优雅的 API 来等待页面元素出现

  • API 更简洁直观,代码量少

Helium 主要缺点,体现在:

  • 由于封装,屏蔽了很多细节,所以它不合适二次开发

  • 目前仅支持 Chrome 和 FireFox 浏览器

  • 版本更新慢、遗留 Bug 及文档少

这段是抄的 AirPython 我就懒得码字了

建议 helium 和 Selenium搭配使用

helium练习记录到此结束了, 欢迎各位 一起交流。

你可能感兴趣的:(helium,selenium)