gpt4 book ai didi

java - 带通配符的 Pagefactory 动态 WebElement

转载 作者:行者123 更新时间:2023-12-02 02:33:40 24 4
gpt4 key购买 nike

我动态生成的定位器取决于将从列表中选择哪个元素。

例如,这是我生成的 ID:

Function:TableName:0:submenuAction

0 是计数器,表示从列表中选择第一个元素。计数器前后的所有字符串都不会改变,所以从开始,包含xpath的方法不起作用。

我可以使用一些通配符吗 Function:TableName:{X}:submenuAction {x} 是整数。

我可以存储所选的元素数量,但如何在 pagefactory 元素内使用此变量? driver.findelement 可能会因 staleElementException 失败,这就是我想使用 PageFactory 的原因。

最佳答案

无论你传入什么,都可能必须是一个常量(例如 Java 中的 final static )才能在 PageFactory 中使用。注释。

private final static int ITEM_INDEX = 2;

...

@FindBy(xpath="Function:TableName:"+ ITEM_INDEX + ":submenuAction")
private WebElement targetListItem;

除了评论中提到的一些过时检查策略之外,您可能还想尝试将所有这些动态标识的元素绑定(bind)到集合(例如 List<WebElement> ),然后在以下位置建立索引:

@FindBy(xpath="...")
private List<WebElement> allListEntries;

...

private WebElement getTargetListEntry(int index) {
return allListEntries.get(index);
}

关于java - 带通配符的 Pagefactory 动态 WebElement,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46719814/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com