public final class DataTableEvent extends AbstractEvent
文件名:OperateDataTable.java
用途: 提供对数据表格进行基本操作的事件,包括对数据列表的翻页、跳页、获取等操作,以简化部分操作的代码
编码时间:2020年11月17日上午7:58:40
修改时间:2021年3月10日上午8:05:36
Modifier and Type | Class and Description |
---|---|
static class |
DataTableEvent.DataTableKeywordType
文件名:DataTableEvent.java
|
class |
DataTableEvent.InvalidDataListException
文件名:DataTableEvent.java
|
Modifier and Type | Field and Description |
---|---|
protected LinkedHashMap<String,FindDataListElement> |
elementTableMap
用于存储当前的列表的元素
|
protected int |
listSize
用于存储当前列表的长度
|
brower, exceptionSet, isLocationElement, LOCATION_ELEMENT_JS, wait, waitTime, webElement
Constructor and Description |
---|
DataTableEvent(AbstractBrower brower)
构造对象
|
Modifier and Type | Method and Description |
---|---|
void |
addList(FindDataListElement dataListBy)
用于添加一列元素
|
protected void |
againFindElement(String... columnNames)
重新获取指定列名对应的元素数据,若未传入列名称,则对存储所有数据进行重获
|
protected boolean |
assertData(BooleanSupplier action,
String... columnNames)
用于执行需要断言页面元素的列表操作,在其操作方法前后添加了断言操作
|
protected int |
getAssertColumnSize(String name)
获取断言列元素个数。列名称只做空判断
|
protected List<String> |
getAssertRowText(int assertRowIndex,
String... columnNames)
用于返回断言所需指定列的指定行文本(下标从1开始)。
|
TableData<Element> |
getElementTable()
用于以
TableData 的形式返回元素列表 |
ArrayList<Optional<String>> |
getListText(String listName)
获取指定列的文本,若该列元素异常时,则抛出异常
|
Element |
getRandomElement(String listName)
用于随机返回指定列表的随机一个元素
|
List<Optional<Element>> |
getRowElement(int rowIndex)
获取指定的一行元素,下标允许传入负数,表示从后向前遍历
|
ArrayList<Optional<String>> |
getRowText(int rowIndex)
获取指定行的文本,其行号可传入负数,具体规则可参考
FindMultiElement.getElement(int) 方法 |
boolean |
jumpPage(String pageCount,
String... columnNames)
用于对列表进行点击跳页按钮后的跳页操作。若当前存储过元素列表,则对元素列表进行断言,
即取存储的列表的第一行元素,若操作前后,该行元素不变,则判定为跳页失败
|
int |
nextPage(int count,
String... columnNames)
用于点击多次下一页按钮,并返回实际点击次数(实际点击次数)。
|
protected int |
pageTurning(DataTableEvent.DataTableKeywordType dataTableKeywordType,
int count,
String... columnNames)
用于对列表进行翻页操作
|
int |
previousPage(int count,
String... columnNames)
用于点击多次上一页按钮,并返回实际点击次数(实际点击次数)。
|
void |
putControl(DataTableEvent.DataTableKeywordType dataTableKeywordType,
Element elemenet)
用于添加列表控件的枚举,在调用部分列表操作方法时会使用在此处添加的映射
|
boolean |
searchList(BooleanSupplier action,
String... columnNames)
通过条件,点击
DataTableEvent.DataTableKeywordType.SEARCH_BUTTON 映射的按钮,对列表
进行搜索,并以默认的断言形式对列表变化进行断言,返回断言结果。 |
boolean |
searchList(String... columnNames)
用于无条件点击
DataTableEvent.DataTableKeywordType.SEARCH_BUTTON 映射的按钮。 |
List<Boolean> |
searchList(String columnName,
String key,
BooleanSupplier action)
用于通过点击搜索前进行一系列操作后,对列表进行搜索,并对指定列进行包含关键词的断言,并返回列表每一列的断言结果
|
List<Boolean> |
searchList(String columnName,
String key,
Element textboxElement)
用于通过输入型搜索条件对列表进行搜索,并对指定列进行包含关键词的断言,并返回列表每一列的断言结果
|
void |
setWaitElement(Element waitElement)
用于设置列表加载等待元素,通过该元素,将应用与列表操作后,等待该控件消失后再进行断言的操作
|
actionOperate, arrayToString, getBrower, getExceptionInfomation, isExistElement, locationElement, setLocationElement, setWaitTime
protected LinkedHashMap<String,FindDataListElement> elementTableMap
protected int listSize
public DataTableEvent(AbstractBrower brower)
brower
- 浏览器AbstractBrower
类对象public void setWaitElement(Element waitElement)
waitElement
- 列表加载等待控件public void addList(FindDataListElement dataListBy)
注意:传入的FindDataListElement
类对象中元素的名称请勿与其他元素名称一致,否则会覆盖原有的元素列。
其元素名称将作为列表名称,可通过该名称获取当前列
dataListBy
- 元素列查找对象public void putControl(DataTableEvent.DataTableKeywordType dataTableKeywordType, Element elemenet)
dataTableKeywordType
- 列表可映射的控件枚举DataTableEvent.DataTableKeywordType
elemenet
- 控件相应的元素对象Element
public int previousPage(int count, String... columnNames)
用于点击多次上一页按钮,并返回实际点击次数(实际点击次数)。
根据设置的翻页数,对列表进行翻页,若翻页数小于等于0,则不进行翻页。方法可设置需要断言的列, 每次翻页时,均会断言对列表设置的值进行断言,以此判断列表翻页是否有效。不传入断言列或断言列 为空时,则表示对存储的所有列断言
注意:在不进行断言或断言列为空时,则翻页将一直返回成功,直到达到指定的翻页数量为止
count
- 点击次数columnNames
- 需要进行断言的列名称public int nextPage(int count, String... columnNames)
用于点击多次下一页按钮,并返回实际点击次数(实际点击次数)。
根据设置的翻页数,对列表进行翻页,若翻页数小于等于0,则不进行翻页。方法可设置需要断言的列, 每次翻页时,均会断言对列表设置的值进行断言,以此判断列表翻页是否有效。不传入断言列或断言列 为空时,则表示对存储的所有列断言
注意:在不进行断言或断言列为空时,则翻页将一直返回成功,直到达到指定的翻页数量为止
count
- 点击次数columnNames
- 需要进行断言的列名称protected int pageTurning(DataTableEvent.DataTableKeywordType dataTableKeywordType, int count, String... columnNames)
dataTableKeywordType
- 翻页按钮类型count
- 指定的翻页次数columnNames
- 需要进行断言的列名称public boolean jumpPage(String pageCount, String... columnNames)
pageCount
- 页码数columnNames
- 需要断言的列名称public boolean searchList(BooleanSupplier action, String... columnNames)
DataTableEvent.DataTableKeywordType.SEARCH_BUTTON
映射的按钮,对列表
进行搜索,并以默认的断言形式对列表变化进行断言,返回断言结果。
方法中需要接收一个返回值为boolean类型的操作,若操作的返回值为false时, 则不会点击按钮,可参考以下写法:
DataTableEvent test = new DataTableEvent(brower);
test.searchList(() -> {
te.input(cb.getElement("账号搜索文本框"), "13000000000");
return true;
});
注意:默认断言表示根据指定的断言列,取每列的第一条数据,判断该值搜索前后的变化,若存在变化,则 断言成功。不传入断言列时,则默认断言所有的列
action
- 返回值为boolean类型的操作columnNames
- 指定的断言列ControlException
- 未指定搜索按钮的映射时抛出的异常public boolean searchList(String... columnNames)
DataTableEvent.DataTableKeywordType.SEARCH_BUTTON
映射的按钮。ControlException
- 未指定搜索按钮的映射时抛出的异常public List<Boolean> searchList(String columnName, String key, Element textboxElement)
例如,在页面上存在“姓名”的筛选条件,在对应的列表中存在“姓名”的字段,则在编写
脚本时,分别对“姓名”搜索框和“姓名”列的定位方式进行存储,调用如下代码后,便可
通过“姓名”对列表进行搜索,并断言搜索后在列表字段上,“姓名”列的每一行是否搜索 的关键词
DataTableEvent test = new DataTableEvent(brower);
test.addList(new FindDataListElement("姓名列"))
test.searchList("姓名列", "测试", common.getElement("姓名搜索框"));
注意:
columnName
- 断言列名称key
- 关键词textboxElement
- 搜索条件控件的Element
对象ControlException
- 未指定搜索按钮的映射或搜索条件控件未传入时抛出的异常searchList(BooleanSupplier, String...)
public List<Boolean> searchList(String columnName, String key, BooleanSupplier action)
例如,在页面上存在“姓名”的筛选条件,在对应的列表中存在“姓名”的字段,则在编写
脚本时,分别对“姓名”搜索框和“姓名”列的定位方式进行存储,调用如下代码后,便可
通过“姓名”对列表进行搜索,并断言搜索后在列表字段上,“姓名”列的每一行是否搜索 的关键词
DataTableEvent test = new DataTableEvent(brower);
test.addList(new FindDataListElement("姓名列"))
test.searchList("姓名列", "测试", () -> {
textEvent.input(common.getElement("姓名搜索框"), "测试");
return true;
});
注意:
columnName
- 断言列名称key
- 关键词action
- 点击搜索按钮前的操作ControlException
- 未指定搜索按钮的映射或搜索条件控件未传入时抛出的异常searchList(BooleanSupplier, String...)
public List<Optional<Element>> getRowElement(int rowIndex)
获取指定的一行元素,下标允许传入负数,表示从后向前遍历
注意:下标从1开始计算,即传入1时表示获取第1行数据;若传入0,则以表中最长列的元素个数为基准, 返回一个随机的数字
rowIndex
- 需要获取的行下标ControlException
- 元素集合为空时抛出的异常public ArrayList<Optional<String>> getRowText(int rowIndex)
FindMultiElement.getElement(int)
方法rowIndex
- 指定的行号public ArrayList<Optional<String>> getListText(String listName)
listName
- 列表名称ControlException
- 该列不存在或该列元素为空时抛出的异常public Element getRandomElement(String listName)
listName
- 列表名称protected boolean assertData(BooleanSupplier action, String... columnNames)
action
- 需要执行的内容protected List<String> getAssertRowText(int assertRowIndex, String... columnNames)
columnNames
- 列名称数组protected int getAssertColumnSize(String name)
name
- 列名称protected void againFindElement(String... columnNames)
columnNames
- 存储的列名称Copyright © 2024. All rights reserved.