您好我在我的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;
}
没有什么对我有用..
答案 0 :(得分:3)
您似乎没有致电PageFactory.initElements();
有关详细信息,请参阅PageFactory documentation。
由于你没有发布包含元素的页面类,所以我无法给你最好的答案放在哪里(一般来说,它将是内部页面对象的构造函数或页面对象的初始化后)。
答案 1 :(得分:0)
您应该在visibilityOf方法()
中传递定位器参数WebElement e = wait.until(ExpectedConditions.visibilityOf(By.id(locatorArg)));
如果你没有传递该值,那么webdriver如何找到该元素。