我已经使用 selenium web driver java 编写了代码来搜索学校并从搜索中获取第一个 url。我的代码在没有 PhantomJS 的情况下运行良好。但是由于我想使用无头浏览器,请尝试以下代码进行更改。
WebElement element = driver.findElement(By.name("q"));
PhantomJS 在下面的代码中找不到这个元素“ driver.findElement(By.name("q"));
”,我也尝试了 id,但没有成功。
Capabilities caps = new DesiredCapabilities();
((DesiredCapabilities) caps).setJavascriptEnabled(true);
((DesiredCapabilities)caps).setCapability("takesScreenshot", true);
((DesiredCapabilities) caps).setCapability( PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,"C:/Softwares/phantomjs-2.5.0-beta-windows/phantomjs-2.5.0.beta-windows/bin/phantomjs.exe");
// Initialize browser
WebDriver driver = new PhantomJSDriver(caps);
// And now use this to visit Google
driver.get("https://www.google.com");
// Maximize browser
driver.manage().window().maximize();
// find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
String searchSchool = "Bay High School"
// enter something to search for
element.sendKeys(searchSchool);
System.out.println("school name is "+ searchSchool);
// now submit the form
element.submit();
Thread.sleep(500);
WebElement click = driver.findElement(By.name("btnG"));
click.click();
Thread.sleep(2000);
List<WebElement> listings = driver.findElements(By.tagName("div").xpath("//cite[@class='_Rm']"));
listings.size();