【发布时间】:2017-10-12 22:26:07
【问题描述】:
我动态生成的定位器取决于要从列表中选择哪个元素。
例如,这是我生成的 id:
Function:TableName:0:submenuAction
0 是计数器,表示从列表中选择第一个元素。计数器前后的所有字符串都不会改变,所以开头,包含xpath的方法不起作用。
我可以使用一些通配符吗
Function:TableName:{X}:submenuAction {x} 是整数。
我可以存储所选数量的元素,但是如何在 pagefactory 元素中使用此变量? driver.findelement 可能会因 staleElementException 而失败,这就是我想使用 PageFactory 的原因。
【问题讨论】:
-
当您在更改页面的 DOM 状态后尝试访问任何元素时,通常会发生 stale element 错误。因此,如果您想使用任何元素,您应该立即获得参考,然后您可以执行任何操作。为了您更好地理解场景,我正在编写一些伪代码来触发陈旧元素错误。 1. 获取页面上任何元素的引用 (driver.findelement(....)) 2. 刷新页面 (driver.manage.navigate.refresh()) 3. 现在尝试单击该元素 (element.click ())--> 你会遇到 stale element 错误。
标签: java selenium selenium-webdriver pageobjects page-factory