我正在开发一个java应用程序.我有拍摄进入服务器的URL的屏幕截图.
是否有任何java(或任何lang)浏览器库来加载网页并获取加载页面的一些屏幕截图.如果lib允许DOM遍历会很好.
更新:
java(or any lang):任何其他语言都不是问题,但库应该与java合作.
我试图设置 Qt Jambi并花费了大量时间,但结果却一无所获.如果您提供任何具体材料来设置Jambi,那将是值得赞赏的.
我也尝试过spynner.py.我的母语是Java,我认为我可以使用spynner.py它Jython.但是,PyQt不能用Jython.所以,我不期待任何相关的答案Python.
基本上,我需要一个库来做:
拍摄屏幕截图.
一些DOM遍历.
一些Javascript执行.
并获得Executed JS代码的结果.
谢谢.
我很感谢所有的回复.我结束了phantomjs.它非常适合我的需求.它是一个命令行工具.
Selenium/Webdriver提供所有这些功能.
Webdriver提供了一个简单的api,允许您"驱动"浏览器实例.支持许多浏览器.
请看这里一个简单的例子:
http://seleniumhq.org/docs/03_webdriver.html#getting-started-with-selenium-webdriver
使用"By"定位器遍历dom:
这里有很好的例子:http://www.qaautomation.net/?p = 388
driver.findElement(By.name("q"));
Run Code Online (Sandbox Code Playgroud)
执行Javascript:
WebDriver driver; // Assigned elsewhere
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("return document.title");
Run Code Online (Sandbox Code Playgroud)
截图捕获:
http://seleniumhq.org/docs/04_webdriver_advanced.html#taking-a-screenshot
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
Run Code Online (Sandbox Code Playgroud)
在 java 中,您应该阅读以下 stackoverflow 帖子:
因为你说“或任何语言”:
在 Python 中,你有Spynner:
Spynner 是一个用于 Python 的有状态编程 Web 浏览器模块,具有基于 QtWebKit 框架的 Javascript/AJAX 支持。
根据文档,这里有一个小片段:
import spynner
browser = spynner.Browser()
browser.load("http://www.wordreference.com")
browser.runjs("console.log('I can run Javascript!')")
browser.runjs("_jQuery('div').css('border', 'solid red')") # and jQuery!
browser.select("#esen")
browser.fill("input[name=enit]", "hola")
browser.click("input[name=b]")
browser.wait_page_load()
print browser.url, len(browser.html)
browser.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1531 次 |
| 最近记录: |