2017-02-07 26 views
0

Я использую Selenium для автоматизации приложения CEF. Я успешно могу выполнять такие операции, как клик и т. Д. Но не могу сделать скриншот с помощью драйвера Selenium. Поскольку это очень важная функция для автоматизации. Как я могу это сделать?Невозможно сделать снимок экрана приложения CEF с использованием Selenium

Я использую следующее:

  1. CEF приложение - sample application provided by CEF
  2. selenium jar - selenium-server-standalone-3.0.1
  3. cef_binary_3.2924.1564.g0ba0378_windows64_client
  4. chromedriver

Найти код ниже:

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.TakesScreenshot; 
import org.openqa.selenium.OutputType; 

public class Example { 
    public static void main(String[] args) { 
     // Path to the ChromeDriver executable. 
     System.setProperty("webdriver.chrome.driver", "D:/CEFTesting/chromedriver.exe"); 
     // Path to the CEF executable. 
     ChromeOptions options = new ChromeOptions(); 

     options.setBinary("D:/CEFTesting/cef_binary_3.2924.1564.g0ba0378_windows64_client/Release/cefclient.exe"); 

     WebDriver driver = new ChromeDriver(options); 
     driver.get("http://www.google.com/xhtml"); 
     sleep(3000); // Let the user actually see something! 
     WebElement searchBox = driver.findElement(By.name("q")); 
     searchBox.sendKeys("ChromeDriver"); 
     searchBox.submit(); 
     sleep(5000); // Let the user actually see something! 

     String screenshotBase64 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64); 
     System.out.println(screenshotBase64); 
     sleep(5000); // Let the user actually see something! 
     driver.quit(); 
    } 
} 

Я столкнулся с ошибкой.

+0

Можем ли мы увидеть, какой у вас код? Какой драйвер/язык вы используете? Вы исследовали, как это сделать? – halfer

+0

1) Приложение CEF - Пример приложения, предоставленного CEF (ссылка - \t https://bitbucket.org/chromiumembedded/cef/wiki/UsingChromeDriver.md) 2) selenium jar - selenium-server-standalone-3.0.1 3) cef_binary_3.2924.1564.g0ba0378_windows64_client 4) chromedriver – Shweta12345

+0

Shweta, пожалуйста, отредактируйте вопрос, есть ли у вас больше материала для добавления, а не добавьте больше материала в комментарии или ответы. – halfer

ответ

0

Я использую следующее:

  1. CEF приложения - пример приложения, предоставленную CEF (ссылка - https://bitbucket.org/chromiumembedded/cef/wiki/UsingChromeDriver.md)
  2. селеном банку - селен-сервер-автономный-3.0.1
  3. cef_binary_3. 2924.1564.g0ba0378_windows64_client
  4. chromedriver

Вот код:

import org.openqa.selenium.By; 
import org.openqa.selenium.WebDriver; 
import org.openqa.selenium.WebElement; 
import org.openqa.selenium.chrome.ChromeDriver; 
import org.openqa.selenium.chrome.ChromeOptions; 
import org.openqa.selenium.TakesScreenshot; 
import org.openqa.selenium.OutputType; 

public class Example { 
    public static void main(String[] args) { 
     // Path to the ChromeDriver executable. 
     System.setProperty("webdriver.chrome.driver", "D:/CEFTesting/chromedriver.exe"); 
     // Path to the CEF executable. 
     ChromeOptions options = new ChromeOptions(); 

     options.setBinary("D:/CEFTesting/cef_binary_3.2924.1564.g0ba0378_windows64_client/Release/cefclient.exe"); 

     WebDriver driver = new ChromeDriver(options); 
     driver.get("http://www.google.com/xhtml"); 
     sleep(3000); // Let the user actually see something! 
     WebElement searchBox = driver.findElement(By.name("q")); 
     searchBox.sendKeys("ChromeDriver"); 
     searchBox.submit(); 
     sleep(5000); // Let the user actually see something! 

     String screenshotBase64 = ((TakesScreenshot) driver).getScreenshotAs(OutputType.BASE64); 
     System.out.println(screenshotBase64); 
     sleep(5000); // Let the user actually see something! 
     driver.quit(); 
    } 
} 
+3

Shweta, пожалуйста [отредактируйте вопрос] (https://stackoverflow.com/posts/42095658/edit), если у вас есть больше материала для добавления - поле ответа предназначено только для ответов. Вы также не указали ошибку, которую видите. Я редактировал как можно больше вопросов. – halfer

 Смежные вопросы

  • Нет связанных вопросов^_^