如何覆盖/扩展Appium RemoteWebElement方法(selenium.remote)?

时间:2018-06-28 07:19:34

标签: java selenium appium

我已经开始将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 垫子。

0 个答案:

没有答案