Селен2: Снимки экрана с сеткой селена 2 - PullRequest
2 голосов
/ 16 августа 2011

Можно ли делать скриншоты, используя селеновую сетку 2? Класс RemoteWebDriver не реализует интерфейс TakesScreenshot.

Mark

Ответы [ 2 ]

5 голосов
/ 16 августа 2011

* * * * * * * * * * * * * RemoteWebDriver должно быть дополнено, прежде чем вы сможете использовать функцию скриншота.Как вы уже не сомневаетесь, попытка произнесения без увеличения приводит к исключению.

WebDriver driver = new RemoteWebDriver( ... );
driver           = new Augmenter().augment( driver );
( (TakesScreenshot)driver ).getScreenshotAs( ... );
0 голосов
/ 16 августа 2011

Вам нужно написать класс-оболочку, который расширяет RemoteWebDriver и реализует интерфейс TakeScreenshot, как показано ниже в Java.

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; 
    } 
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...