我已经开始将PageFactory用于Android / iOS Appium测试。我需要向element.click()和element.sendKeys()方法添加一些其他功能。目前我有:
public LoginPage(AppiumDriver<MobileElement> driver) {
super(driver);
}
@AndroidFindBy(id = "com.appname.in:id/bSkip")
MobileElement skipElement;
public TermsAndConditionsPage skipLogin() {
log.info("Skip login");
skipElement.click();
return new TermsAndConditionsPage(driver);
}
不幸的是,MobileElement的skipElement.click()从RemoteWebElement调用了click()方法:
public void click() {
this.execute("clickElement", ImmutableMap.of("id", this.id));
}
如何从RemoteWebElement类轻松@Override click()方法?
package org.openqa.selenium.remote;
public class RemoteWebElement implements WebElement, FindsByLinkText, FindsById, FindsByName, FindsByTagName, FindsByClassName, FindsByCssSelector, FindsByXPath, WrapsDriver, Locatable, HasIdentity, TakesScreenshot {
private String foundBy;
protected String id;
protected RemoteWebDriver parent;
protected FileDetector fileDetector;
public RemoteWebElement() {
}
...
public void click() {
this.execute("clickElement", ImmutableMap.of("id", this.id));
}
...
}
我已经检查了扩展/覆盖WebElement(http://elisarver.com/2012/12/09/wrapping-webelement-1/)的教程,但是对于RemoteWebElement而言,它不是接口,因此没有帮助。
提前谢谢! BR 垫子。