2016-01-22 28 views
-1

我自動添加到卡片進程http://www.fnp.com/the-sweet-surprises-genpr-143431-e.html網站。我正在編寫代碼使用TestNG POM結構。我得到卡住在我得到的任務空指針例外在處理自我暗示。下面是我的POM類在處理Selenium中的AutoSuggestion中獲取NullPointer異常Java

public class productPage_POM { 
    public WebDriver driver; 

    @FindBy(id="tagsf2") 
    private WebElement city_txtbox; 

public productPage_POM(WebDriver driver) 
    { 
     PageFactory.initElements(driver, this); 
    } 

    public void sel_adr() 
    { 
     city_txtbox.sendKeys("gan");  // on this line i am gettign nullpointer Exception 

     String xp = "//a[starts-with(text(),'gan')]"; 
     List<WebElement> allList = driver.findElements(By.xpath(xp)); 
     int count = allList.size(); 
     System.out.println(count); 
     for (int i = 0; i < count ; i++) 
     { 
      String name = allList.get(i).getText(); 
      System.out.println(name); 
      if(name.contains("Gandhinagar")) 
      { 
       allList.get(i).click(); 
       break; 
      } 
     } 

以下是HTML結構

<div class="pro_detail"> 
<div id="changeImage" class="pro_detail_image"> 
<div class="pro_detail_title"> 
<div class="pro_detail_size"> 
<div class="pro_detail_form"> 
<input id="cityIdHidden" type="hidden" value="CITY-1219"> 
<input id="hasShippingOption" type="hidden" value=""> 
<input id="cityIdHidden1" type="hidden" value=""> 
<input id="liCount" type="hidden" value="1"> 
<div id="hiddenField"> 
<div class="pro_detail_form_inn"> 
<label>1. Where do you want to deliver this?</label> 
<input id="tagsf2" class="inp_pro_detail2 election ui-autocomplete-input" type="text" value="Enter City" onchange="showAddtocart();" onblur="WatermarkOnblur('Enter City','tagsf2');shippingOption();" onfocus="WatermarkOnfocus('Enter City','tagsf2')" autocomplete="off"> 
<span class="ui-helper-hidden-accessible" role="status" aria-live="polite">CITY-1219</span> 
<div class="clear"></div> 
<div id="cityNotAvailable" class="error_message hide" style="display: none;"> 
</div> 
<div class="textbox"> 
</div> 
<div class="pro_detail_form"> 
<div id="divDeliveryText" class="pro_detail_form" style="display:none;"> 
<div id="valentineCatalougueText" class="pro_detail_form" style="display:block;"> 
<div class="pro_detail_form"> 
+0

提供錯誤日誌 –

+0

請確保您的定位器「city_txtbox」已初始化,在代碼中我無法找到它的xpath。 –

回答

1

下面的代碼將工作:

String xp = "//ul/li/a[@class='ui-corner-all']"; 
    List<WebElement> allList = driver.findElements(By.xpath(xp)); 
    int count = allList.size(); 
    System.out.println(count); 
    for (int i = 0; i < count ; i++) 
    { 
     String name = allList.get(i).getText(); 
     System.out.println(name); 
     if(name.contains("Gandhinagar")) 
     { 
      allList.get(i).click(); 
      break; 
     } 

} 
+0

謝謝anita。這工作正常 –

+0

提到不@RahilKumar :) – Anitha

+0

你可以看看更多的一部分。只需點擊鏈接 [link](http://stackoverflow.com/questions/34945125/unable-to-select-from-ui-li-elements-in-selenium-java?noredirect=1#comment57622022_34945125) –

0

我想自動完成創建一個列表。所以它應該是

String xp = "//li[starts-with(text(),'gan')]"; 
WebDriverWait wait = new WebDriverWait(driver,40); 
wait.until(ExpectedConditions.presenceOfElementsLocated(By.xpath(xp))); 

我認爲這需要時間自動完成加載,但應該有一定的延遲後,你應該嘗試找到的元素。嘗試WebDriverWait並讓我知道。

+0

它沒有工作。我也嘗試使用Div標記 –

+0

嘗試使用等同於上面。 –

0

初始化您WebElement點擊或之前的SendKeys。

WebElement webelement = getDriver().findElement(By.id("tagsf2")); 
webelement.sendKeys("gan"); 

剩餘的邏輯似乎是正確的。只要確保你的suggetion字段的xpath是正確的。