!16 添加列表事件的改造

Merge pull request !16 from 彭宇琦/feature/20210207-列表事件改造
This commit is contained in:
彭宇琦 2021-02-07 16:51:35 +08:00 committed by Gitee
commit b76e758c67
2 changed files with 45 additions and 5 deletions

View File

@ -258,9 +258,10 @@ public final class DataTableEvent extends AbstractEvent {
}
/**
* 通过条件点击{@link DataTableKeywordType#SEARCH_BUTTON}映射的按钮对列表进行搜索方法中需要接收一个
* 返回值为boolean类型的操作若操作的返回值为false时则不会点击按钮可参考以下写法
*
* 通过条件点击{@link DataTableKeywordType#SEARCH_BUTTON}映射的按钮对列表进行搜索
* <p>
* 方法中需要接收一个返回值为boolean类型的操作若操作的返回值为false时
* 则不会点击按钮可参考以下写法
* <code><pre>
* DataTableEvent test = new DataTableEvent(brower);
* test.searchList(() -&gt; {
@ -268,6 +269,7 @@ public final class DataTableEvent extends AbstractEvent {
* return true;
* });
* </pre></code>
* </p>
*
* @param action 返回值为boolean类型的操作
* @return 列表是否有变化
@ -302,6 +304,15 @@ public final class DataTableEvent extends AbstractEvent {
return result;
}
/**
* 用于无条件点击{@link DataTableKeywordType#SEARCH_BUTTON}映射的按钮
*
* @return列表是否有变化
*/
public boolean searchList() {
return searchList(() -> true);
}
/**
* <p>
* 获取指定的一行元素下标允许传入负数表示从后向前遍历
@ -327,7 +338,6 @@ public final class DataTableEvent extends AbstractEvent {
.filter(table -> !table.isEmpty())
//若当前为空集合则抛出异常
.orElseThrow(() -> new ControlException("当前行元素为空,无法获取"));
}
/**
@ -372,6 +382,32 @@ public final class DataTableEvent extends AbstractEvent {
return listTextList;
}
/**
* 用于以{@link TableData}的形式返回元素列表
* @return 元素列表
*/
public TableData<Element> getElementTable() {
return new TableData<Element>(elementTable);
}
/**
* 用于随机返回指定列表的随机一个元素
* @param listName 列表名称
* @return 指定列表的随机元素
*/
public Element getRandomElement(String listName) {
//按列表长度获取随机数
int listSize = elementTable.getListSize(listName);
int randomIndex = new Random().nextInt(listSize);
//根据随机数返回元素若当前随机的元素不存在则返回列表第一个元素
//若列表第一个元素仍不存在则跑出异常
return elementTable.getColumnList(listName).get(randomIndex)
.orElse(elementTable.getColumnList(listName).get(0)
.orElseThrow(() -> new ControlException("当前列元素为空,无法获取")));
}
/**
* 用于执行需要断言页面元素的列表操作在其操作方法前后添加了断言操作
*

View File

@ -67,6 +67,10 @@ public class TableData<T> {
tableMap.forEach(this::addColumn);
}
public TableData(TableData<T> tableData) {
this.addTable(tableData);
}
/**
* 用于设置是否对传入的数据列表的个数进行严格校验即在调用{@link #getData(int, int, List)}等获取数据的方法时
* 若数据个数与初次传入的个数不符且需要严格校验则抛出异常反之则直接进行存储