2017-09-05 75 views
1

我正在做不同的爬蟲項目,並試圖模仿用戶操作。作爲它的一部分,我正在抓取這個url。這裏有一個郵政編碼框,我試圖點擊它並從下拉菜單中提取文本,然後顯示。我寫了下面的代碼,但不知道爲什麼它不工作。任何人都可以幫忙嗎?我做了徹底的搜索找到根本原因,但什麼都沒有。任何建議將非常感激。無法點擊或頁面沒有響應點擊java中的phantomjs-selenium

driver.getUrl(aboveUrl); 
WebElement inputBox = driver.findElement(By.id("pincodeInputId")); 
inputBox.click(); 
System.out.println(driver.findElement(By.className("_3mWImx")).getText()); 

- This given null; 等待幫助!

+0

,如果你要打印你所使用的findElements(其實有在下拉不止一個值)。使用此代碼,它會給你想要的結果 – iamsankalp89

回答

0

的原因是您選擇的節點是具有文本

Dev Tools

元素的父節點應使用

System.out.println(driver.findElement(By.css("_3mWImx span")).getText()); 

這會工作。還要注意,類_3mWImx有多個元素,所以這隻會給你第一個元素。如果你對所有這些都感興趣,那麼你應該使用driver.findElements並循環結果

0

實際上,如果你想打印所有你必須使用的號碼findElements(),下拉菜單中有多個值。使用此代碼,它會給你想要的結果:

WebDriver driver=new FirefoxDriver(); 
driver.manage().window().maximize(); 
driver.get("https://www.flipkart.com/moto-e4-plus-fine-gold-32-gb/p/itmevqynuz4fwxca"); 
WebElement inputBox = driver.findElement(By.id("pincodeInputId")); 
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS); 
inputBox.click(); 
List<WebElement> elements=driver.findElements(By.className("_3mWImx")); 
for(WebElement ele:elements) 
{ 
System.out.println(ele.getText()); //It will print innertext of each element 
} 

輸出:

From Saved Addresses 

Loginto see your saved addresses 
+0

如果你想要使用Phantomjs而不是firefoxdriver – iamsankalp89