Page、Element 与 Elements 类
约 198 个字 63 行代码 预计阅读时间 1 分钟
类比
Page
类相当于测试的页面,Element
类相当于一个元素,Elements
类相当于一群元素。
代码示例
from poium import Page , Element
class BaiduPage ( Page ):
input = Element ( id_ = "kw" , timeout = 1 , index = 0 , describe = "搜索输入框" )
button = Element ( id_ = "su" , timeout = 1 , index = 0 , describe = "搜索按钮" )
results = Elements ( xpath = "//div/h3/a" , describe = "搜索结果" )
创建页面类继承 Page
类。
通过 Element
类定义元素。
Element
类参数
第一个参数:定位参数
支持所有 Selenium / appium 的定位方式。
# selenium
css = "xx"
id_ = "xx"
name = "xx"
xpath = "xx"
link_text = "xx"
partial_link_text = "xx"
tag = "xx"
class_name = "xx"
# appium
ios_uiautomation = "xx"
ios_predicate = "xx"
ios_class_chain = "xx"
android_uiautomator = "xx"
android_viewtag = "xx"
android_data_matcher = "xx"
android_view_matcher = "xx"
windows_uiautomation = "xx"
accessibility_id = "xx"
image = "xx"
custom = "xx"
其他参数
timeout
: 设置超时检查次数,默认为 5
。
index
: 设置元素索引,当你的定位方式默认匹配到多个元素时,默认返回第 1 个,即为 0
。
describe
: 设置元素描述,默认为 undefined
, 建议为每个元素增加描述。
Element
类方法
Selenium 操作
page . elem . clear () # 清空内容
page . elem . send_keys ( value ) # 输入内容
page . elem . click () # 单击
page . elem . submit () # 提交表单
page . elem . tag_name # 标签名
page . elem . text # 元素文本
page . elem . size # 尺寸
page . elem . get_property ( name ) # 元素属性
page . elem . get_attribute ( name ) # 元素参数
page . elem . is_displayed () # 是否显示
page . elem . is_selected () # 是否选中
page . elem . is_enabled () # 是否启用
page . elem . switch_to_frame () # 切换到该框架(Selenium)
page . elem . move_to_element () # 将鼠标放到该元素中间(Selenium)
page . elem . click_and_hold () # 左键按住该元素(Selenium)
page . elem . double_click () # 双击(Selenium)
page . elem . context_click () # 右击(Selenium)
page . elem . drag_and_drop_by_offset ( x , y ) # 左键拖动元素若干距离,松开(Selenium)
page . elem . refresh_element ( timeout = 10 ) # 刷新页面,重新获取元素(Selenium)
select
下拉操作
page . elem . select_by_value ( value ) # 根据 value 值选择项(Selenium)
page . elem . select_by_index ( index ) # 根据 index 属性选择项(Selenium)
page . elem . select_by_visible_text ( text ) # 根据显示文本选择项(Selenium)
appium 操作
page . elem . set_text ( keys ) # 输入文本(appium)
page . elem . location_in_view # 返回字典,表示相对于视图的位置(appium)
page . elem . set_value ( value ) # 设置值(appium)
模拟键盘操作
page . elem . input ( text = "" )
page . elem . enter ()
page . elem . select_all ()
page . elem . cut ()
page . elem . copy ()
page . elem . paste ()
page . elem . backspace ()
page . elem . delete ()
page . elem . tab ()
page . elem . space ()
Elements
类
返回一个列表,列表中每一项都是 Selenium 的页面元素对象 。