1,Selenium技巧-截图加上时间戳 问题场景: 截图太多,如何给截图加上时间戳,防止重复命名的覆盖 解决办法: driver.get_screenshot_as_file(u"D:/save_screenshot/%s.png" %
datetime.now().strftime("%Y%m%d.%H%M%S.%f")[:-3]) 这样截图文件的命名为“20120720.105146.343”(最后三位是千分秒,截图基本不太可能出现重名) http://www./internet/562906.html
2,selenium webdriver学习(十二)-怎么利用selenium-webdriver截图 在自动化测试中常常会用到截图功能。最近用了一下selenium-webdriver的截图功能还算不错,可以截取页面全图,不管页面有多长。 下面的代码演示了如何使用webdriver进行截图: import java.io.File; import java.io.IOException;
import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import
org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import
org.openqa.selenium.firefox.FirefoxDriver; public class ShotScreen {
/** * @author gongjf * @throws IOException * @throws InterruptedException */ public
static void main(String[] args) throws IOException, InterruptedException { System.setProperty("webdriver.firefox.bin","D:\\Program
Files\\Mozilla Firefox\\firefox.exe");
WebDriver
dr = new FirefoxDriver(); dr.get("http://www.51.com"); //这里等待页面加载完成 Thread.sleep(5000); //下面代码是得到截图并保存在D盘下 File
screenShotFile = ((TakesScreenshot)dr).getScreenshotAs(OutputType.FILE); FileUtils.copyFile(screenShotFile,
new File("D:/test.png"));}} 看了一下OutputType接口和TakesScreenshot接口,吐槽一下,貌似这两个接口不是同一个开发写的或者注释没有更新怎么的。在OutputType里面的注释说: /** *
Defines the output type for a screenshot. See org.openqa.selenium.Screenshot
for usage and *
examples. ... 然后在那找了半天的org.openqa.selenium.Screenshot 接口,晕,后来想应该是org.openqa.selenium.TakesScreenshot。 在TakesScreenshot里有如下注释:
/** *
Capture the screenshot and store it in the specified location. * *
<p>For WebDriver extending TakesScreenshot, this makes a best effort *
depending on the browser to return the following in order of preference: *
<ul>
* <li>Entire
page</li>
* <li>Current
window</li>
* <li>Visible portion of
the current frame</li>
* <li>The screenshot of
the entire display containing the browser</li> *
</ul> * *
<p>For WebElement
extending TakesScreenshot, this makes a best effort *
depending on the browser to return the following in order of preference:
* - The entire content of the
HTML element
* - The visisble portion of the
HTML element * *
@param <X> Return type for getScreenshotAs. *
@param target target type, @see OutputType *
@return Object in which is stored information about the screenshot. *
@throws WebDriverException on failure.
*/ 试了一下截取Webelement最终发现WebElement接口没有实现这个类。搞了半天也只是会了截取页面的全图。截取当前的frame也截取的页面全图。难道这个功能没有完善,好吧,这样说自我安慰一下。 selenium-webdriver 面向接口编程,找一个需要的功能还真是挺难的。 3,Selenium-webdriver系列课程(18)————万能的截图 Selenium-webdriver系列教程(18)————万能的截图 require 'rubygems' require 'selenium-webdriver' dr = Selenium::WebDriver.for :ie url = 'http://qq.com' dr.get url dr.save_screenshot '.\qq.png' dr.close
4,selenium获取目前快照截图(web driver可用)
selenium获取当前快照截图(web driver可用) File screenshot = ((TakesScreenshot)
driver).getScreenshotAs(OutputType.FILE);
5,selenium自动化测试,处置alert框 selenium自动化测试,处理alert框
|
|
来自: 十三笑兮兮 > 《Selenium》