我对通过php和phantomjs进行屏幕捕获有一点了解,但仅针对静态网页。我是新手,如果有人在这里指导我,我会很高兴。
例如:
要打开google.com,请搜索“stackoverflow”并进一步打开stackoverflow.com并获取主页的屏幕截图。这些步骤必须通过代码(即)自动完成。在此先感谢guyz !!
答案 0 :(得分:0)
Selenium网站有一个例子,说明如何在http://www.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example
从Java(使用Firefox作为浏览器)做类似的事情这是一个快速TL; DR版本。它没有点击进入Stack Overflow,而是应该截取该术语的Google结果截图。当你已经知道网站的网址时,通过谷歌可能是一个多余的步骤,我相信你可以修改这个例子,让它做你需要的。
WebDriver driver = new FirefoxDriver();
driver.get("http://www.google.com");
// Find the text input element by its name
WebElement element = driver.findElement(By.name("q"));
element.sendKeys("Stack Overflow");
element.submit();
// Google's search is rendered dynamically with JavaScript.
// Wait for the page to load, timeout after 10 seconds
(new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {
public Boolean apply(WebDriver d) {
return d.getTitle().toLowerCase().startsWith("Stack Overflow");
}
});
// Screenshot of search results (screen not whole page)
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
FileUtils.copyFile(scrFile, new File("c:\\screenshot.png"));
截图代码来自Sergii Pozharov在Take a screenshot with Selenium WebDriver的回答 - 请参阅其他注意事项,例如选择驱动程序。