如何为WebElement编写函数单击Selenium Webdriver

时间:2016-09-20 07:00:49

标签: java selenium selenium-webdriver

我有很多WebElements 例如,我声明了一个WebElement a

@FindBy(id="BtnLogin")
private WebElement btnLogin;

以同样的方式,我创建了“N”个WebElements 每次我不能使用“driver.findElement()”函数所以我写了一个函数

public static void WebElementClick(WebElement we)
{
we.click();
}

当控件进入线路时,WebElementclick函数中的we.click()它显示NullPointerException作为结果我的目的是失败

我不知道该怎么做,有人请帮助我:)

3 个答案:

答案 0 :(得分:0)

您的getName()应该收到选择器,它应该:find element - >点击,你可以从上面的链接中得到一个例子。

在你的情况下,你似乎没有使用等待,WebElementClick它试图点击字符串。 使用find将返回一个可使点击可用的对象。

该方法应包含以下内容:WebElementClick
Ant然后使用单击此方法返回的内容。如果您愿意,也可以使用css。

答案 1 :(得分:0)

public class testJava{
@Test
public void testMethod() throws InterruptedException {
    WebDriver driver = new FirefoxDriver();
    pageClass pageClass = PageFactory.initElements(driver, pageClass.class);
    driver.get("http://www.facebook.com");
    Thread.sleep(5000);
    pageClass.clickLoginBtn();
}}

public class pageClass {
@FindBy(id = "loginbutton")
 private WebElement loginBtn;

WebDriver driver;
public pageClass(WebDriver driver) {
    this.driver = driver;
}
public void clickLoginBtn()
{
    click(loginBtn);
}

public void click(WebElement we)
{
    we.click();
}}

使用页面类的最佳做法&测试类。试试这个它会帮助你我猜。 您可以使用驱动程序查找&单击元素。

答案 2 :(得分:0)

我认为该驱动程序可能会在它出现之前尝试点击元素。单击WebElement之前的好习惯是等待WebElement可单击。我会尝试:

public static void WebElementClick(WebElement we)
{
    wait.forElementClickable(we);
    we.click();
}