@FindBy发现webelement返回null

时间:2013-12-03 07:27:11

标签: java selenium selenium-webdriver

您好我在我的selenium代码中使用@FindBy注释

@FindBy(how=How.ID, using = "username")
public WebElement username;

System.out.println(username); - 它打印为空 searchBox.sendKeys("test"); - 抛出“java.lang.NullPointerException”

在对其执行某些操作之前,需要将用户名webelement发送到另一个类以检查它的可见性。

public static WebElement waitAndFindElement(WebDriver driver, WebElement element, int timeOutInSeconds){
WebDriverWait wait = new WebDriverWait(driver,timeOutInSeconds);
WebElement e = wait.until(ExpectedConditions.visibilityOf(element));
return e;
}

没有什么对我有用..

2 个答案:

答案 0 :(得分:3)

您似乎没有致电PageFactory.initElements();

有关详细信息,请参阅PageFactory documentation

由于你没有发布包含元素的页面类,所以我无法给你最好的答案放在哪里(一般来说,它将是内部页面对象的构造函数或页面对象的初始化后)。

答案 1 :(得分:0)

您应该在visibilityOf方法()

中传递定位器参数

WebElement e = wait.until(ExpectedConditions.visibilityOf(By.id(locatorArg)));

如果你没有传递该值,那么webdriver如何找到该元素。