无法点击或页面没有响应点击java中的phantomjs-selenium

无法点击或页面没有响应点击java中的phantomjs-selenium

问题描述:

我正在做不同的爬虫项目,并试图模仿用户操作。作为它的一部分,我正在抓取这个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

的原因是您选择的节点是具有文本

Dev Tools

元素的父节点应使用

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

这会工作。还要注意,类_3mWImx有多个元素,所以这只会给你第一个元素。如果你对所有这些都感兴趣,那么你应该使用driver.findElements并循环结果

实际上,如果你想打印所有你必须使用的号码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