我正在使用 Selenium WebdriverQAF https://github.com/qmetry/qaf。
我面临的问题与在网页上查找元素有关。
对于少数元素,不同的定位器在不同的时间工作。
例如 - 有时 name=nameA 有效,有时 name=nameB (可能取决于 AUT 的不同环境,我不知道)。
找到下面的代码:
public class HomePage extends WebDriverBaseTestPage<WebDriverTestPage> {
@FindBy(locator="name=nameA")
private QAFWebElement btnSomeElement;
@Override
protected void openPage(PageLocator locator, Object... args) {
driver.get("/");
}
}
我应该怎么做才能解决这个问题?
当您已经在使用 QAF 时,您已经有了适用于此类用例的解决方案。首先,您应该使用 Locator 存储库,
无需在页面中硬编码定位器,只需提供定位器键即可。
例如:
在 page.loc 中 File
my.ele.locator=<locatorStretegy>=<locator>
my.ele.locator=name=elemName
在页面类中:
@FindBy(locator = "my.ele.loc")
private QAFWebElement btnSomeElement; Now coming to your problem, if most of the locator very with environment then you can utilize
QAF的资源管理能力 https://qmetry.github.io/qaf/latest/managing_resources_for_different_env.html。在其他情况下你可以
使用备用定位策略 https://qmetry.github.io/qaf/latest/locating_elements.html#alternate-locator由 QAF 提供。例如:
my.ele.locator=['css=.cls#eleid','name=eleName','name=eleName2']
my.ele.locator=['name=eleNameEnv1','name=eleNameEnv2']
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)