账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    selenium + java 屏幕截图
    70
    0

    我使用selenium 进行自动化测试,驱动使用的chrome浏览器的驱动,在用到selenium 的截屏功能的时候发现一个问题,就是截图的结果只是当前页面显示出来的部分,并不是整个页面的全部内容。

    但是之前在使用phantomjs进行截图的时候,就可以完全把整个界面,超过一屏幕的部分全部截取下来,

    File file = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);

    截屏代码使用的是这个。

    第二个问题:
    我看其他语言或者驱动实现截屏功能的时候,有一个单元素的截图功能,

    WebElement element = driver.findElement(By.id("header"));
    File file1 = element.getScreenshotAs(OutputType.FILE);

    但是这个在 java + selenium + chrome 浏览器下报错,
    报错内容如下:

    Exception in thread "main" org.openqa.selenium.UnsupportedCommandException: unknown command: session/d1d93b03a5610dccfa22f775a7dd5bad/screenshot/0.34969357638110843-1
    Command duration or timeout: 8 milliseconds
    Build info: version: '2.53.1', revision: 'a36b8b1cd5757287168e54b817830adce9b0158d', time: '2016-06-30 19:26:09'
    System info: host: 'DESKTOP-L6804PP', ip: '192.168.99.156', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_131'
    Driver info: org.openqa.selenium.chrome.ChromeDriver
    Capabilities [{applicationCacheEnabled=false, rotatable=false, mobileEmulationEnabled=false, networkConnectionEnabled=false, chrome={chromedriverVersion=2.34.522940 (1a76f96f66e3ca7b8e57d503b4dd3bccfba87af1), userDataDir=C:\Users\zzg\AppData\Local\Temp\scoped_dir54824_4941}, takesHeapSnapshot=true, pageLoadStrategy=normal, databaseEnabled=false, handlesAlerts=true, hasTouchScreen=false, version=64.0.3282.167, platform=XP, browserConnectionEnabled=false, nativeEvents=true, acceptSslCerts=true, locationContextEnabled=true, webStorageEnabled=true, browserName=chrome, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true, setWindowRect=true, unexpectedAlertBehaviour=}]
    Session ID: d1d93b03a5610dccfa22f775a7dd5bad
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:206)
        at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:158)
        at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:678)
        at org.openqa.selenium.remote.RemoteWebElement.execute(RemoteWebElement.java:327)
        at org.openqa.selenium.remote.RemoteWebElement.getScreenshotAs(RemoteWebElement.java:447)

    请大佬给指明一下是哪里的问题!

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部