java - 如何为@FindBy 注解实现用户类型?

标签 java selenium webdriver

我正试图从中得到:

@FindBy(xpath = "//div/span/img")
public WebElement addNew;

@FindBy(xpath = "//tr[2]/td[12]")
public WebElement save;

@FindBy(xpath = "//td/div/input")
public WebElement entryIdel;

@FindBy(xpath = "//textarea")
public WebElement authorFieldel;

@FindBy(xpath = "//td[3]/div/textarea")
public WebElement titleFieldel;

那个:

@FindBy(xpath = "//div/span/img")
public Button addNew;

@FindBy(xpath = "//tr[2]/td[12]")
public Button save;

@FindBy(xpath = "//td/div/input")
public InputBox entryIdel;

@FindBy(xpath = "//textarea")
public InputBox authorFieldel;

@FindBy(xpath = "//td[3]/div/textarea")
public InputBox titleFieldel;

我之前已经为每个元素创建了类,但是当然没有任何反应。我如何创建我的元素类以便我可以使用它而不是 WebElement?

此时InputBox的代码如下:

 import org.openqa.selenium.WebElement;

  public class InputBox {

protected WebElement element;

public WebElement getElement() {
    return element;
}

public InputBox(WebElement element) {
    this.element = element;
    // TODO Auto-generated constructor stub
}

public void type(String input) {
    clearText();
    element.sendKeys(input);
}

public void clearText() {
    element.clear();
}

public boolean isEditable() {
    return element.isEnabled();
}

String getText() {
    return element.getText();
}

String getValue() {
    return element.getValue();
}

}

最佳答案

创建 FieldDecorator 的新实现。

当您使用 PageFactory 时,您可能正在调用

 public static void initElements(ElementLocatorFactory factory, Object page)

这会变成

 public static void initElements(FieldDecorator decorator, Object page)

您的 FieldDecorator 的行为可能类似于 DefaultFieldDecorator,只是将代理包装在您的自定义类型中。

在这里查看类(class) [source]

关于java - 如何为@FindBy 注解实现用户类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9478592/

相关文章:

java - 使用路标发送由 OAuth 验证的 POST 请求时出错

java - 在java中获取用于tcp连接的开放套接字

RSelenium:配置 Firefox Remotedriver 以使用 Tor 网络

java - 使用 TestNG 和 Java (Selenium) 进行并行测试

java - createCell 语法错误

ruby-on-rails-3 - 没有方法 error_messages selenium 和 capybara-webkit

java - 如何在 Selenium Java Webdriver 中验证图像的尺寸?

java - Selenium 网络驱动程序 : Unable to access elements of a drop down list (un-ordered list)

java - 当测试运行时并行观察是否存在特定元素

java - 如何在char数组中存储一个空格?