在网站内导航并通过代码

时间:2016-09-29 11:33:41

标签: javascript java php web screenshot

  • 我需要为最终的结帐页面截取多个单独购物网站的屏幕截图。
  • 购物车和其他导航页面中所有商品的选择必须通过代码。
  • 输出屏幕截图应位于图像文件(jpg,png)中或插入docx文件中(如果可能)
  • 我可以使用哪种工具和技术完成此任务?

我对通过php和phantomjs进行屏幕捕获有一点了解,但仅针对静态网页。我是新手,如果有人在这里指导我,我会很高兴。

例如:

要打开google.com,请搜索“stackoverflow”并进一步打开stackoverflow.com并获取主页的屏幕截图。这些步骤必须通过代码(即)自动完成。在此先感谢guyz !!

1 个答案:

答案 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的回答 - 请参阅其他注意事项,例如选择驱动程序。