2016-09-20 70 views
0

我有WebElements 例如一標段,我宣佈一個WebElement一個如何編寫WebElement點擊一個功能在硒的webdriver

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

在我創造同樣的方式「N」 WebElements 每個數一次,我不能使用「driver.findElement()」函數所以我寫了一個函數

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

當過控制是要行we.click()在WebElementclick功能是顯示NullPointerException異常的結果我目的是F生病

我沒有收到怎麼辦,有人請幫我在這:)

+0

這可能是你的網頁被更改/你點擊element.Please檢查在此之前http://stackoverflow.com/questions/39573231/i-am-getting-nullpointer-exception重載-when-i-perform-click-for-the-webelemen – lauda

+0

嗨,不,我在登錄頁面,沒有頁面獲取重載的問題,因爲我輸入用戶名,密碼並單擊登錄按鈕 –

回答

0

WebElementClick應該接受選擇,它應該:發現元素 - >單擊,您可以從上面得到一個例子鏈接。

在你的情況下,你似乎沒有使用wait和WebElementClick它試圖點擊字符串。 使用find將返回一個可以點擊的對象。

的方法應該包含這樣的:driver.findElement(By.xpath("your_selector"));
螞蟻,然後用點擊一下這個方法returns.You也可以使用CSS,如果你想。

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(); 
}} 

它的最佳實踐是使用頁面類&測試class..Try這個它會幫助你我猜。 您正在嘗試用驅動器查找&單擊此元素。

0

我認爲驅動程序可能會嘗試在提交之前單擊元素。單擊WebElement之前的良好做法是等待WebElement可點擊。我會嘗試:

public static void WebElementClick(WebElement we) 
{ 
    wait.forElementClickable(we); 
    we.click(); 
} 
相關問題