尝试查找 WebElement 时出现 NullpointerException
NullpointerException when trying to find a WebElement
我正在尝试使用以下代码查找网络元素:
private WebElement loc_Start;
public void clickButton() {
loc_Start.findElement(By.xpath("//button[contains(text(), 'Start')]")).click();
}
我没有发现代码中有任何错误。我也尝试使用 @FindBy 注释,这给了我同样的错误。
如果您尝试使用 PageFactory 实现它,
public class Page{
@FindBy(xpath=" //button[contains(text(), 'Start')] ")
private WebElement loc_Start;
public void clickButton() {
// to initialize page - else u will get null pointer exception
Page page = PageFactory.init(driver, Page.class);
page.loc_Start.click();
}
}
如果不使用页面工厂
private WebElement loc_Start = driver.findElement(By.xpath("//button[contains(text(), 'Start')]"));
public void clickButton() {
loc_Start.click ();
}
您将收到 NullPointerException,因为您尚未初始化 loc_Start 变量。
出于某种原因正在使用您的网络元素来查找该元素。使用您的网站 driver.
改变loc_Start
loc_Start.findElement(By.xpath("//button[contains(text(), 'Start')]")).click();
你的 driver 名字
driver.findElement(By.xpath("//button[contains(text(), 'Start')]")).click();
我也遇到了同样的错误。我犯的错误是试图使用 Webelement 查找元素。相反,我应该使用 Webdriver 来这样做,比如
Webelement myelement=driver.findelement(by.xpath());
myelement.click() // or whatever function you want to perform.
首先初始化webelement的驱动后,我们可以直接使用webelemnt来查找元素,而不用像
那样使用驱动
myelement.findelement(by.xpath()).click();
注意:在 webdriver 第一次初始化后直接使用 webelement 查找元素在功能上是明智的。在每个函数中,您必须像这样使用它:-
Webelement myelement=driver.findelement(by.xpath());
myelement.click();
然后对于下一个元素我们可以使用 ->
myelement.findelement(by.xpath()).click();
希望对您有所帮助!!!
我正在尝试使用以下代码查找网络元素:
private WebElement loc_Start;
public void clickButton() {
loc_Start.findElement(By.xpath("//button[contains(text(), 'Start')]")).click();
}
我没有发现代码中有任何错误。我也尝试使用 @FindBy 注释,这给了我同样的错误。
如果您尝试使用 PageFactory 实现它,
public class Page{ @FindBy(xpath=" //button[contains(text(), 'Start')] ") private WebElement loc_Start; public void clickButton() { // to initialize page - else u will get null pointer exception Page page = PageFactory.init(driver, Page.class); page.loc_Start.click(); } }
如果不使用页面工厂
private WebElement loc_Start = driver.findElement(By.xpath("//button[contains(text(), 'Start')]")); public void clickButton() { loc_Start.click (); }
您将收到 NullPointerException,因为您尚未初始化 loc_Start 变量。
出于某种原因正在使用您的网络元素来查找该元素。使用您的网站 driver.
改变loc_Start
loc_Start.findElement(By.xpath("//button[contains(text(), 'Start')]")).click();
你的 driver 名字
driver.findElement(By.xpath("//button[contains(text(), 'Start')]")).click();
我也遇到了同样的错误。我犯的错误是试图使用 Webelement 查找元素。相反,我应该使用 Webdriver 来这样做,比如
Webelement myelement=driver.findelement(by.xpath());
myelement.click() // or whatever function you want to perform.
首先初始化webelement的驱动后,我们可以直接使用webelemnt来查找元素,而不用像
那样使用驱动myelement.findelement(by.xpath()).click();
注意:在 webdriver 第一次初始化后直接使用 webelement 查找元素在功能上是明智的。在每个函数中,您必须像这样使用它:-
Webelement myelement=driver.findelement(by.xpath());
myelement.click();
然后对于下一个元素我们可以使用 ->
myelement.findelement(by.xpath()).click();
希望对您有所帮助!!!