[英]Using @FindBy with my own class, not with WebElement
不僅可以將@FindBy與WebElement一起使用,還可以與我自己的類一起使用嗎?
我想讓我的類與頁面元素合作,並在其中重寫WebElement接口的某些方法。
這樣我實現了該類:
public class NamedElement implements WebElement {
public boolean isDisplayed(){
try{
return element.isDisplayed();
} catch (NoSuchElementException noElement) {
return false;
}
}
並想這樣聲明元素:
@FindBy(xpath = ".//a[contains(text(), 'Log in')]")
public NamedElement loginButton;
但是我得到了錯誤:
java.lang.IllegalArgumentException: Can not set lenovo.tests.page.NamedElement field lenovo.tests.page.NCBLoginPage.loginButton to com.sun.proxy.$Proxy9
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:167)
at sun.reflect.UnsafeFieldAccessorImpl.throwSetIllegalArgumentException(UnsafeFieldAccessorImpl.java:171)
at sun.reflect.UnsafeObjectFieldAccessorImpl.set(UnsafeObjectFieldAccessorImpl.java:81)
at java.lang.reflect.Field.set(Field.java:764)
at org.openqa.selenium.support.PageFactory.proxyFields(PageFactory.java:116)
at org.openqa.selenium.support.PageFactory.initElements(PageFactory.java:104)
at org.openqa.selenium.support.PageFactory.initElements(PageFactory.java:91)
at org.openqa.selenium.support.PageFactory.initElements(PageFactory.java:78)
at org.openqa.selenium.support.PageFactory.initElements(PageFactory.java:64)
at lenovo.tests.step.NCBLoginStep.<init>(NCBLoginStep.java:20)
您能否建議我重寫WebElement方法並改用.isDispalyed()方法的正確方法? 我想繼續使用@FindBy批注。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.