Wah*_*001 9 java selenium webdriver
我正在使用RemoteWebDriver从我的笔记本电脑(Java客户端)在远程PC上运行Selenium WebDriver测试.但是RemoteWebDriver还没有提供截屏API来直接获取远程PC的截图.谷歌搜索了很多,但发现似乎需要使用Json API直接从remoteWebDriver服务器获取它.任何人都可以给我一些关于如何做的指示?谢谢.
Mik*_*wan 13
在RemoteWebDriver必须增强之前,你可以使用截图功能.正如您已经发现的那样,尝试在没有增加的情况下进行投射会导致异常.
WebDriver driver = new RemoteWebDriver( ... );
driver = new Augmenter().augment( driver );
( (TakesScreenshot)driver ).getScreenshotAs( ... );
Run Code Online (Sandbox Code Playgroud)
我能够让这个工作......这是你需要做的:
1)在Util目录或某个地方创建一个新的类文件
package com.util;
import java.net.URL;
import org.openqa.selenium.OutputType;
import org.openqa.selenium.TakesScreenshot;
import org.openqa.selenium.WebDriverException;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.DriverCommand;
import org.openqa.selenium.remote.RemoteWebDriver;
public class ScreenShotRemoteWebDriver extends RemoteWebDriver implements TakesScreenshot {
public ScreenShotRemoteWebDriver(URL url, DesiredCapabilities dc) {
super(url, dc);
}
@Override
public <X> X getScreenshotAs(OutputType<X> target) throws WebDriverException {
if ((Boolean) getCapabilities().getCapability(CapabilityType.TAKES_SCREENSHOT)) {
return target.convertFromBase64Png(execute(DriverCommand.SCREENSHOT).getValue().toString());
}
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
2)然后......无论你启动RemoteWeDriver,请用以下代码替换:
driver = new ScreenShotRemoteWebDriver(new URL(-PUT YOUR HUB URL HERE-),cap);
Run Code Online (Sandbox Code Playgroud)
您的屏幕截图将存储在本地.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
14020 次 |
| 最近记录: |