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

时间:2017-09-05 17:41:44

标签: selenium phantomjs

我在不同的抓取工具上做项目并试图模仿用户操作。作为其中的一部分,我正在抓取此url。这里有一个邮政编码框,我试图点击它,然后从下拉列表中提取文本。我写了下面的代码,但不确定为什么它根本不起作用。有人可以帮忙吗?我做了详尽的搜索以找到根本原因但什么都没有。任何建议都会非常感激。

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

- 这给出了null; 等待帮助!

2 个答案:

答案 0 :(得分:0)

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

的元素的父节点

Dev Tools

你应该使用

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

那会有用。另请注意,类_3mWImx有多个元素,因此这只会为您提供第一个元素。如果您对所有这些感兴趣,那么您应该使用driver.findElements并循环结果

答案 1 :(得分: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