使用Selenium的webdriverjs运行Webdriver测试时,截屏的正确方法是什么?
我已经启动了独立的selenium服务器,并且可以看到在selenium服务器上记录了用于截屏的命令,但是没有保存该截屏。
我的代码如下:
var webdriver = require('selenium-webdriver');
var driver = new webdriver.Builder().usingServer('http://localURL:4444/wd/hub').withCapabilities({'browserName': 'chrome'}).build();
driver.get([URL to webserver on my local machine])
driver.takeScreenshot("c:\\selenium_local_map\\out1.png");
拍摄屏幕快照会返回一个Promise,它将以Base64编码的png解析。要写入数据,您需要执行以下操作:
function writeScreenshot(data, name) {
name = name || 'ss.png';
var screenshotPath = 'C:\\selenium_local_map\\';
fs.writeFileSync(screenshotPath + name, data, 'base64');
};
driver.takeScreenshot().then(function(data) {
writeScreenshot(data, 'out1.png');
});
更多文档可以在这里找到
问题内容: 有谁知道是否可以使用Selenium WebDriver截屏?(注:不是seleniumRC) 问题答案: 是的,有可能。以下示例是Java语言:
我试图在一个网页中给出的表格的屏幕截图。和我在代码中提供的相同元素xpath,但是Ashot代码正在捕获其他位置的屏幕截图。 我也尝试过其他截图代码, 但它给了我错误,我可以通过阅读这个链接来修复:https://github.com/pazone/ashot/issues/93,然后我使用下面的代码: 请帮助,因为此代码正在给我网页某些随机部分的屏幕截图。我也试图捕获其他元素,但我再次没有得到正
问题内容: 我有一个Java代码: 然后我有SQLException: 您的SQL语法有误;检查与您的MySQL服务器版本相对应的手册,以在’?’附近使用正确的语法。 问题答案: 您应该执行不带任何参数的,如下所示: 使用参数调用将按原样执行提供的查询(没有绑定参数)。
问题内容: 在Windows上截图的最快方法是什么?是相当慢的..花费4-5秒钟才能获得同一小窗口的30个屏幕截图。拍摄整个桌面的屏幕截图甚至更慢。 问题答案: 您可以直接使用win32 API。 1)首先将焦点放在您要为其截屏的应用程序上。连结文字 “焦点问题在另一个问题中处理”) 2)Win32 API可以帮助截图:
我想截屏Selenium中的一个元素,根据文档,每个WebElement都有一个功能: 截图(文件名) 将当前元素的屏幕截图保存到PNG图像文件。如果有任何IOError,则返回False,否则返回True。在文件名中使用完整路径。 Args:filename:您希望将屏幕截图保存到的完整路径。这应该以一个简单的结尾。png扩展 用法:元素。截图(“/Screenshots/foo.png”) 但
我正在尝试用Selenium在Java中创建ajax wait方法,以获取配置所定义的尽可能多的结果。 我是否应该担心XPath表达式不是snytax正确的,或者Selenium找不到那个webelement?这个例外对我来说是模棱两可的....