public class TextLocation extends AbstractLocation
文件名:TextLcation.java
用途: 用于读取以文本形式存储的元素定位信息。其中,文本中每一行为一条元素信息,元素信息
之间与元素层级的标识,可以通过方法进行设置,之后将按照设置的方式对元素信息与层级
进行计算。默认情况下使用空格作为元素信息分隔的符号,制表符作为元素层级的标识。
元素前三个信息必须是“元素名称(分隔符)元素定位类型(分隔符)元素定位内容”,例如:
“用户名==xpath==\\*[@name='username']”,缺失信息或位置错误其元素均无法识别,则抛出
UndefinedElementException
异常。后两个元素信息分别为元素等待时间与元素类型,
两者均为整形数字,同样也存在顺序,例如:
ElementType
枚举范围内,则表示数字为元素枚举,如
“用户名==xpath==\\*[@name='username']==2”,则表示元素等待时间为2秒ElementType.COMMON_ELEMENT
,且元素等待时间为2秒编码时间:2020年11月3日下午8:45:25
修改时间:2021年3月9日上午8:08:45
Modifier and Type | Field and Description |
---|---|
static String |
DEFAULT_INFO_SPLIT_SIGN
默认元素信息分隔符号
|
static String |
DEFAULT_LEVEL_SPLIT_SIGN
默认元素层级标识符
|
static String |
ELEMENT_SPLIT_SIGN
默认元素间分隔符号
|
protected List<String> |
iframeNameList
用于存储当前窗体的层级结构
|
protected String |
infoSplitSign
存储设置的元素信息分隔符号
|
protected String |
levelSplitSign
存储设置的元素层级标识符
|
protected String |
nowElementName
用于存储当前读取的元素名称
|
END_SIGN, name, placeholder, START_SIGN
Constructor and Description |
---|
TextLocation(String text)
通过默认元素信息及层级信息分隔符对文本中元素信息进行分割,构造相应元素信息对象。默认
元素信息分隔符为“==”(
DEFAULT_INFO_SPLIT_SIGN ),默认层级分隔符为制表符
(DEFAULT_LEVEL_SPLIT_SIGN ) |
TextLocation(String text,
String infoSplitSign,
String levelSplitSign)
通过自定义的元素信息与元素层级分隔符号对文本中元素信息进行分隔,构造元素信息对象。
|
Modifier and Type | Method and Description |
---|---|
protected void |
analysisElement(String elementText)
用于对文本元素信息进行切分,将元素信息分别存储
|
protected String |
analysisElementInformation(String elementText)
用于分析元素信息
|
protected void |
analysisElementLevel(String name,
String elementText)
用于分析元素的层级结构
|
ReadLocation |
find(String name)
用于预读元素信息,并将元素信息进行缓存,以便于快速查找元素信息
|
long |
getBeforeTime()
用于返回元素的前置等待时间
|
ArrayList<ElementLocationInfo> |
getElementLocation()
用于返回元素的定位信息
|
ElementType |
getElementType()
用于返回元素的类型
|
ArrayList<String> |
getIframeNameList()
用于返回元素的所有父窗体名称集合
|
long |
getWaitTime()
用于返回元素的等待时间
|
void |
setSplitSign(String infoSign,
String levelSign)
用于设置文本中元素信息切分符号与元素层级标识符号。由于字符串的切分按照 正则表达式进行切分,若使用特殊字符(如制表符“\t”),则需要按照正则的
写法(如制表符应写为“\\t”)
|
addReplaceFunction, addReplaceWord, getEndElementPlaceholder, getPlaceholder, getStartElementPlaceholder, setElementPlaceholder, toElementType, toWaitTime
public static final String DEFAULT_INFO_SPLIT_SIGN
public static final String DEFAULT_LEVEL_SPLIT_SIGN
public static final String ELEMENT_SPLIT_SIGN
protected String infoSplitSign
protected String levelSplitSign
protected String nowElementName
public TextLocation(String text)
DEFAULT_INFO_SPLIT_SIGN
),默认层级分隔符为制表符
(DEFAULT_LEVEL_SPLIT_SIGN
)text
- 元素信息文本public TextLocation(String text, String infoSplitSign, String levelSplitSign)
通过自定义的元素信息与元素层级分隔符号对文本中元素信息进行分隔,构造元素信息对象。
注意:
text
- 元素信息文本infoSplitSign
- 元素信息分隔符levelSplitSign
- 元素层级分隔符public void setSplitSign(String infoSign, String levelSign)
infoSign
- 元素信息分隔符号levelSign
- 元素层级标识符号public ArrayList<ElementLocationInfo> getElementLocation()
ReadLocation
public ElementType getElementType()
ReadLocation
ElementType
枚举)public ArrayList<String> getIframeNameList()
ReadLocation
public long getWaitTime()
ReadLocation
protected void analysisElement(String elementText)
elementText
- 元素信息UndefinedElementException
- 元素信息不足或元素缺少关键信息时抛出的异常protected void analysisElementLevel(String name, String elementText)
name
- 元素名称elementText
- 元素信息protected String analysisElementInformation(String elementText)
elementText
- 元素信息UndefinedElementException
- 元素信息不足或元素缺少关键信息时抛出的异常public ReadLocation find(String name)
ReadLocation
name
- 元素名称public long getBeforeTime()
ReadLocation
注意:该方法读取到的时间单位为毫秒
Copyright © 2024. All rights reserved.