学习思路:

查看github项目的源码,每个方法都有介绍及使用说明

https://github.com/mherrmann/selenium-python-helium/blob/master/helium/__init__.py

__all__ = [
  # Actions: 方法
  'attach_file', 'click', 'doubleclick', 'drag', 'drag_file', 'find_all',
  'get_driver', 'go_to', 'highlight', 'hover', 'kill_browser', 'press',
  'refresh', 'rightclick', 'scroll_down', 'scroll_left', 'scroll_right',
  'scroll_up', 'select', 'set_driver', 'start_chrome', 'start_firefox',
  'switch_to', 'wait_until', 'write',
  # Predicates:
  'Alert', 'Button', 'CheckBox', 'ComboBox', 'Config', 'Image', 'Link',
  'ListItem', 'Point', 'S', 'RadioButton', 'Text', 'TextField', 'Window',
  # Keys:
  'ADD', 'ALT', 'ARROW_DOWN', 'ARROW_LEFT', 'ARROW_RIGHT', 'ARROW_UP',
  'BACK_SPACE', 'CANCEL', 'CLEAR', 'COMMAND', 'CONTROL', 'DECIMAL', 'DELETE',
  'DIVIDE', 'DOWN', 'END', 'ENTER', 'EQUALS', 'ESCAPE', 'F1', 'F2', 'F3',
  'F4', 'F5', 'F6', 'F7', 'F8', 'F9', 'F10', 'F11', 'F12', 'HELP', 'HOME',
  'INSERT', 'LEFT', 'LEFT_ALT', 'LEFT_CONTROL', 'LEFT_SHIFT', 'META',
  'MULTIPLY', 'NULL', 'NUMPAD0', 'NUMPAD1', 'NUMPAD2', 'NUMPAD3', 'NUMPAD4',
  'NUMPAD5', 'NUMPAD6', 'NUMPAD7', 'NUMPAD8', 'NUMPAD9', 'PAGE_DOWN',
  'PAGE_UP', 'PAUSE', 'RETURN', 'RIGHT', 'SEMICOLON', 'SEPARATOR', 'SHIFT',
  'SPACE', 'SUBTRACT', 'TAB', 'UP'
  ]

Starting a browser  # 打开浏览器

Helium currently supports Chrome and Firefox. You can start them with the following functions:

start_chrome()  # 打开chrome浏览器

start_firefox()  # 打开火狐浏览器

You can optionally pass a URL to open (eg. start_chrome('google.com'))

Headless browser

When you type the above commands, you will actually see a browser window open. This is useful for developing your scripts. However, once you run them, you may not want this window to appear. You can achieve this by adding headless=True:

start_chrome(headless=True)

start_chrome('google.com',headless=True)

(Similarly for start_firefox(...) of course.)

Interacting with a web site  # 与web交互

The following example shows the most typical statements in a Helium script:

from helium import *

start_chrome('google.com')

write('helium selenium github')

press(ENTER)

click('mherrmann/helium')

go_to('github.com/login')

write('username',into='Username')

write('password',into='Password')

click('Sign in')

kill_browser()

Most of your own code will (hopefully) be as simple as the above.

Element types  # 元素类型

The above example used pure strings such as Sign in to identify elements on the web page. But Helium also lets you target elements more specifically. For instance:

You can pass them into other functions such as click(Link('Sign in')). But you can also use them to read data from the web site. For instance:

A common use case is to use .exists() to check for the existence of an element. For example:

if Text('Accept cookies?').exists():

click('I accept')

I also often find Text(...).valueuseful for reading out data:

name = Text(to_right_of='Name:',below=Image(alt='Profile picture')).value

For a full list of element types and their properties, please see the source code.

举例:

click

def click(element):
"""
:param element: The element or point to click.
:type element: str, unicode, :py:class:`HTMLElement`, \
:py:class:`selenium.webdriver.remote.webelement.WebElement` or :py:class:`Point`

Clicks on the given element or point. Common examples are::

click("Sign in")
click(Button("OK"))
click(Point(200, 300))
click(ComboBox("File type").top_left + (50, 0))
"""

Text

class Text(HTMLElement):
"""
Lets you identify any text or label on a web page. This is most useful for
checking whether a particular text exists::

if Text("Do you want to proceed?").exists():
click("Yes")

``Text`` also makes it possible to read plain text data from a web page. For
example, suppose you have a table of people's email addresses. Then you
can read John's email addresses as follows::

Text(below="Email", to_right_of="John").value

Similarly to ``below`` and ``to_right_of``, the keyword parameters ``above``
and ``to_left_of`` can be used to search for texts above and to the left of
other web elements.
"""


欢迎交流

310678696



Helium文档2-WebUI自动化-常用方法介绍的更多相关文章

  1. Helium文档1-WebUI自动化-环境准备与入门

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

  2. JS文档和Demo自动化生成工具 - SmartDoc发布

    曾几何时,当你码神附体,一路披荆斩棘的完成代码后,带着“一码在手,天下我有”的傲然环顾之时,却发现单元测试.API文档.Demo实例陆续向你砸来,顿时有木有一种冰水挑战后的感觉.而这时你应该:哟哟,快 ...

  3. C# 写入XML文档三种方法详细介绍

      三个类将同样的xml内容写入文档,介绍了如何使用XmlDocument类对XML进行操作,以及如何使用LINQ to XML对XML进行操作. 它们分别使用了XmlDocument类和XDocum ...

  4. CocoaAsyncSocket 文档1:Socket简单介绍

    前言 CocoaAsyncSocket是 IOS下广泛应用的Socket三方库,网上相关样例数不胜数.这里我就不直接上代码,本文由B9班的真高兴发表于CSDN博客.另辟一条思路:翻译SocketAsy ...

  5. JS文档生成工具:JSDoc 介绍

    JSDoc是一个根据javascript文件中注释的信息,生成API文档的工具.生成的文档是html文件.类似JavaDoc和PHPDoc. 用法 /** 一坨注释之类的 */JSDoc会从/**开头 ...

  6. Helium文档13-WebUI自动化-helium快速切换到selenium状态并调用其方法

    前言 前面说过helium是对Selenium 进行了封装,那么我们如何使用selenium的方法呢,通过下面的介绍,我们能够清楚在helium中能够使用selenium的任何方法 入参介绍 def ...

  7. Helium文档15-WebUI自动化-chromedriver问题

    前言 helium库是自带chromedriver的,我们怎么来查看在哪里呢? 目录介绍 用我的电脑上的路径打比方如下: D:\Program Files (x86)\Python38\Lib\sit ...

  8. Helium文档14-WebUI自动化-hover鼠标悬浮

    前言 hover 实现功能是将鼠标光标悬停在给定的元素或点上 入参介绍 element def hover(element): """ :param element: T ...

  9. Helium文档11-WebUI自动化-attach_file上传文件或图片

    前言 attach_file关键字根据官方介绍的作用是上传文件 入参介绍 def attach_file(file_path, to=None): """ :param ...

随机推荐

  1. 三年之久的 etcd3 数据不一致 bug 分析

    问题背景 诡异的 K8S 滚动更新异常 笔者某天收到同事反馈,测试环境中 K8S 集群进行滚动更新发布时未生效.通过 kube-apiserver 查看发现,对应的 Deployment 版本已经是最 ...

  2. NX二次开发-NX访问MySQL数据库(增删改查)

    版本:NX11+VS2013+MySQL5.6(x64)+SQLyog 1.新建一个NX项目(多字节) 2.设置VC++目录(调用MySQL的头文件,dll和lib库文件) 3.设置番茄助手 然后重启 ...

  3. Linux实战(6):Centos8上传镜像

    小记 做以下操作之前得准备一个Docker Hub 的账号,然后创建仓库可私有也可公有这得看你自己了,仓库的名称需记住等等会有用. 安装podman podman跟docker使用的命令非常的接近,但 ...

  4. 重磅来袭 Vue 3.0 One Piece 正式发布

    代号为One Piece 的Vue3.0 在9月19日凌晨正式发布!! 此次vue3.0 为用户提供了全新的 composition-api 以及更小的包大小,和更好的 TypeScript 支持. ...

  5. API测试-接口测试基础(1)

    由于自己想学习API方面的测试,但是市面上搜不到相关的图书可以系统学习,网上的内容又零零散散,适合有点API开发基础的人去搜索.为了方面新手学习API测试,现在整理了他人的宝贵经验和自己的学习心得,尽 ...

  6. 口罩预约管理系统——系统网站实现(前端+PHP+MySQL)

    口罩预约管理系统网站实现 一.前言 二.系统登陆逻辑及界面实现 三.用户模块 1.用户预约系统界面 2.用户查看我的订单界面 3.用户修改预约信息 四.管理员模块 1.管理员登陆界面 2.查看用户预约 ...

  7. 【转】postgreSQL​之autovacuum性能问题分析(二)

    如上篇文章提到,如果出现了autovacuum的问题,那么这可能是个悲伤的故事.怎么解决? 笔者觉得可以从如下几个方面着手去考虑解决问题,可以避免一些坑.1) 持续观察,是不是autovacuum问题 ...

  8. 栈帧的内部结构--动态返回地址(Return Address)

    每个栈帧中包含: 局部变量表(Local Variables) 操作数栈(Opreand Stack) 或表达式栈 动态链接 (Dynamic Linking) (或指向运行时常量的方法引用) 动态返 ...

  9. GEKCTF2020-web

    GEKCTF [GKCTF2020]CheckIN97 <title>Check_In</title> <?php highlight_file(__FILE__); c ...

  10. 【小白学PyTorch】13 EfficientNet详解及PyTorch实现

    参考目录: 目录 1 EfficientNet 1.1 概述 1.2 把扩展问题用数学来描述 1.3 实验内容 1.4 compound scaling method 1.5 EfficientNet ...