Java 类org.openqa.selenium.phantomjs.PhantomJSDriver 实例源码
项目:phantranslator
文件:PhantranslatorExecutor.java
protected WebDriver getDriver() {
if (this._driver == null) {
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);
caps.setCapability(
PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX
+ "userAgent", spoofUserAgent);
caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,
new String[] { "--web-security=false",
"--ssl-protocol=any", "--ignore-ssl-errors=true",
"--webdriver-loglevel=INFO" });
PhantomJSDriverService service = new PhantomJSDriverService.Builder()
.usingPort(8080)
.usingPhantomJSExecutable(new File("/usr/local/bin/phantomjs"))
.build();
this._driver = new PhantomJSDriver(service, caps);
}
return this._driver;
}
项目:NoraUi
文件:DriverFactory.java
/**
* Generates a phantomJs webdriver.
*
* @return
* A phantomJs webdriver
* @throws TechnicalException
* if an error occured when Webdriver setExecutable to true.
*/
private WebDriver generatePhantomJsDriver() throws TechnicalException {
final String pathWebdriver = DriverFactory.getPath(Driver.PHANTOMJS);
if (!new File(pathWebdriver).setExecutable(true)) {
throw new TechnicalException(Messages.getMessage(TechnicalException.TECHNICAL_ERROR_MESSAGE_WEBDRIVER_SET_EXECUTABLE));
}
logger.info("Generating Phantomjs driver ({}) ...", pathWebdriver);
final DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_CUSTOMHEADERS_PREFIX + "Accept-Language", "fr-FR");
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, pathWebdriver);
capabilities.setCapability(CapabilityType.UNEXPECTED_ALERT_BEHAVIOUR, UnexpectedAlertBehaviour.ACCEPT);
capabilities.setJavascriptEnabled(true);
setLoggingLevel(capabilities);
// Proxy configuration
String proxy = "";
if (Context.getProxy().getProxyType() != ProxyType.UNSPECIFIED && Context.getProxy().getProxyType() != ProxyType.AUTODETECT) {
proxy = Context.getProxy().getHttpProxy();
}
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,
new String[] { "--proxy=" + proxy, "--web-security=no", "--ignore-ssl-errors=true", "--ssl-protocol=tlsv1", "--webdriver-loglevel=NONE" });
return new PhantomJSDriver(capabilities);
}
项目:selenium-jupiter
文件:SeleniumExtension.java
public SeleniumExtension() {
handlerMap.put(ChromeDriver.class, ChromeDriverHandler.class);
handlerMap.put(FirefoxDriver.class, FirefoxDriverHandler.class);
handlerMap.put(EdgeDriver.class, EdgeDriverHandler.class);
handlerMap.put(OperaDriver.class, OperaDriverHandler.class);
handlerMap.put(SafariDriver.class, SafariDriverHandler.class);
handlerMap.put(RemoteWebDriver.class, RemoteDriverHandler.class);
handlerMap.put(AppiumDriver.class, AppiumDriverHandler.class);
handlerMap.put(List.class, ListDriverHandler.class);
handlerMap.put(PhantomJSDriver.class, OtherDriverHandler.class);
templateHandlerMap.put("chrome", ChromeDriver.class);
templateHandlerMap.put("firefox", FirefoxDriver.class);
templateHandlerMap.put("edge", EdgeDriver.class);
templateHandlerMap.put("opera", OperaDriver.class);
templateHandlerMap.put("safari", SafariDriver.class);
templateHandlerMap.put("appium", AppiumDriver.class);
templateHandlerMap.put("phantomjs", PhantomJSDriver.class);
templateHandlerMap.put("chrome-in-docker", RemoteWebDriver.class);
templateHandlerMap.put("firefox-in-docker", RemoteWebDriver.class);
templateHandlerMap.put("opera-in-docker", RemoteWebDriver.class);
}
项目:zucchini
文件:SeleniumDriver.java
private static WebDriver createPhantomJSDriver(String driverPath) {
DesiredCapabilities desiredCapabilities = DesiredCapabilities.phantomjs();
desiredCapabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, driverPath);
desiredCapabilities.setCapability(CapabilityType.ELEMENT_SCROLL_BEHAVIOR, true);
desiredCapabilities.setCapability(CapabilityType.TAKES_SCREENSHOT, true);
desiredCapabilities.setCapability(CapabilityType.ENABLE_PROFILING_CAPABILITY, true);
desiredCapabilities.setCapability(CapabilityType.HAS_NATIVE_EVENTS, true);
desiredCapabilities.setJavascriptEnabled(true);
ArrayList<String> cliArgs = new ArrayList<String>();
cliArgs.add("--web-security=true");
cliArgs.add("--ignore-ssl-errors=true");
desiredCapabilities.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, cliArgs);
return new PhantomJSDriver(desiredCapabilities);
}
项目:PwnBack
文件:PwnBackWebDriver.java
PwnBackWebDriver(PwnBackMediator mediator) {
this.mediator = mediator;
PhantomJSDriverService driverService = new PhantomJSDriverService.Builder()
.usingPhantomJSExecutable(new File(PwnBackSettings.phatomjsLocation))
.build();
DesiredCapabilities capability = new DesiredCapabilities();
capability.setCapability("takesScreenshot", false);
String[] args = new String[1];
args[0] = "";
if (checkSSLCertPathDefined()) {
args[0] = "--ssl-certificates-path=" + PwnBackSettings.caBundleLocation;
}
capability.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, args);
capability.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 5.1; rv:22.0) Gecko/20100101 Firefox/22.0");
driver = new PhantomJSDriver(driverService, capability);
}
项目:crawler
文件:PhantomjsWebDriverPool.java
public WebDriver get() throws InterruptedException {
WebDriver poll = innerQueue.poll();
if (poll != null) {
return poll;
}
if (refCount.get() < CAPACITY) {
synchronized (innerQueue) {
if (refCount.get() < CAPACITY) {
WebDriver mDriver = new PhantomJSDriver(caps);
// 尝试性解决:https://github.com/ariya/phantomjs/issues/11526问题
mDriver.manage().timeouts()
.pageLoadTimeout(60, TimeUnit.SECONDS);
// mDriver.manage().window().setSize(new Dimension(1366,
// 768));
innerQueue.add(mDriver);
refCount.incrementAndGet();
}
}
}
return innerQueue.take();
}
项目:nifi-nars
文件:GetWebpage.java
@Override
public void onTrigger(ProcessContext context, ProcessSession session) {
DesiredCapabilities DesireCaps = new DesiredCapabilities();
DesireCaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, context.getProperty(DRIVER_LOCATION).getValue());
driver = new PhantomJSDriver(DesireCaps);
FlowFile flowFile = session.create();
try {
driver.get(url);
(new WebDriverWait(driver, timeout)).until(
ExpectedConditions.visibilityOfElementLocated(getExpectedCondition(selectorType, selector))
);
final byte[] page = formatToXHtml(driver.getPageSource(), StandardCharsets.UTF_8);
flowFile = session.write(flowFile, outputStream -> outputStream.write(page));
session.transfer(flowFile, REL_SUCCESS);
} catch (Exception e) {
flowFile = session.write(flowFile, outputStream -> outputStream.write(e.getMessage().getBytes()));
session.transfer(flowFile, REL_FAILURE);
} finally {
driver.quit();
}
session.getProvenanceReporter().create(flowFile);
}
项目:phanbedder
文件:PhanbedderTest.java
@Test
public void testSeleniumGhostDriver() {
File phantomjs = Phanbedder.unpack();
DesiredCapabilities dcaps = new DesiredCapabilities();
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs.getAbsolutePath());
PhantomJSDriver driver = new PhantomJSDriver(dcaps);
try {
driver.get("https://www.google.com");
WebElement query = driver.findElement(By.name("q"));
query.sendKeys("Phanbedder");
query.submit();
Assertions.assertThat(driver.getTitle()).contains("Phanbedder");
} finally {
driver.quit();
}
}
项目:jimix
文件:JimixServletIntegrationTest.java
@Before
public void before() throws Exception {
final Gauge<Long> gauge = Metrics.newGauge(metricName, new Gauge<Long>() {
long current = 42;
@Override
public Long value() {
return current;
}
});
server = new Server(8081);
ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);
context.setContextPath("/");
server.setHandler(context);
context.addServlet(new ServletHolder(new JimixServlet()), "/jimix/*");
server.start();
// driver = new FirefoxDriver();
driver = new PhantomJSDriver();
driver.manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
}
项目:seletest
文件:ConfigurationDriver.java
/**
* PhantomJS bean
* @param capabilities Desirercapabilities for WebDriver
* @return WebDriver instance
*/
@Bean(name="phantomJS")
@Lazy(true)
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
public WebDriver phantomJS(DesiredCapabilities capabilities){
DesiredCapabilities phantomJSCap = new DesiredCapabilities();
phantomJSCap.setJavascriptEnabled(true);
try {
phantomJSCap.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, URLDecoder.decode(getClass()
.getClassLoader().getResource(".").getPath(), "UTF-8")+System.getProperty("file.separator")+"downloads"+System.getProperty("file.separator")+"phantomjs-2.0.0-windows"+System.getProperty("file" +
".separator")+"phantomjs.exe");
} catch (UnsupportedEncodingException e) {
log.error("Exception occured constructing path to executable: {}", e);
}
phantomJSCap.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[]{
"--ignore-ssl-errors=yes",
"--web-security=false",
"--ssl-protocol=any"});
phantomJSCap.setCapability(PhantomJSDriverService.PHANTOMJS_PAGE_SETTINGS_PREFIX, "Y");
phantomJSCap.setCapability("phantomjs.page.settings.userAgent", "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36");
phantomJSCap.setCapability("elementScrollBehavior",1);
return new PhantomJSDriver(capabilities.merge(phantomJSCap));
}
项目:galen
文件:SeleniumBrowserFactory.java
public static WebDriver getDriver(String browserType){
if ( StringUtils.isEmpty(browserType) || FIREFOX.equals(browserType)) {
return new FirefoxDriver(SeleniumBrowserFactory.getBrowserCapabilities(browserType));
}
else if (CHROME.equals(browserType)) {
return new ChromeDriver(SeleniumBrowserFactory.getBrowserCapabilities(browserType));
}
else if (IE.equals(browserType)) {
return new InternetExplorerDriver(SeleniumBrowserFactory.getBrowserCapabilities(browserType));
}
else if (PHANTOMJS.equals(browserType)) {
return new PhantomJSDriver();
}
else if (SAFARI.equals(browserType)) {
return new SafariDriver();
}
else if (EDGE.equals(browserType)) {
return new EdgeDriver();
}
else {
throw new RuntimeException(String.format("Unknown browser type: \"%s\"", browserType));
}
}
项目:gwt-d3
文件:AbstractSeleniumTest.java
@Before
public void setup() throws MalformedURLException {
String webAppUrl = System.getProperty(WEBAPP_URL);
System.setProperty("SELENIUM_STARTING_URL", "http://127.0.0.1:8888/D3Demo.html?gwt.codesvr=127.0.0.1:9997");
// separate localhost and saucelabls/cloudbees env
if (System.getProperty(RUN_SELENIUM_LOCALHOST) != null) {
// ensure the Firefox with default profile is loaded
// in order to use the Firefox instance with GWT dev plugin
System.setProperty("webdriver.firefox.profile", "default");
driver = new FirefoxDriver();
webAppUrl = "http://127.0.0.1:8888/D3Demo.html?gwt.codesvr=127.0.0.1:9997";
} else {
driver = new PhantomJSDriver();
webAppUrl = "http://127.0.0.1:8080/D3Demo.html";
}
Dimension size = new Dimension(1920, 1080);
driver.manage().window().setSize(size);
driver.get(webAppUrl);
}
项目:mastering-junit5
文件:LocalWebDriverTest.java
@Test
public void testWithHeadlessBrowsers(HtmlUnitDriver htmlUnit,
PhantomJSDriver phantomjs) {
htmlUnit.get("https://bonigarcia.github.io/selenium-jupiter/");
phantomjs.get("https://bonigarcia.github.io/selenium-jupiter/");
assertTrue(htmlUnit.getTitle().contains("JUnit 5 extension"));
assertNotNull(phantomjs.getPageSource());
}
项目:Gospy
文件:PhantomJSFetcher.java
private PhantomJSFetcher(String phantomJsBinaryPath, int timeout, boolean loadImages, String userAgent, Collection<Cookie> cookies) {
System.setProperty("phantomjs.binary.path", phantomJsBinaryPath);
DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
capabilities.setCapability("phantomjs.page.settings.resourceTimeout", timeout);
capabilities.setCapability("phantomjs.page.settings.loadImages", loadImages);
capabilities.setCapability("phantomjs.page.settings.userAgent", userAgent);
this.webDriver = new PhantomJSDriver(capabilities);
this.userAgent = userAgent;
this.cookies = cookies;
}
项目:Gospy
文件:PhantomJSProcessor.java
private PhantomJSProcessor(String phantomJsBinaryPath, int timeout, boolean loadImages, String userAgent, Extractor<WebDriver, ?> handler, TaskFilter filter) {
System.setProperty("phantomjs.binary.path", phantomJsBinaryPath);
DesiredCapabilities capabilities = DesiredCapabilities.phantomjs();
capabilities.setCapability("phantomjs.page.settings.resourceTimeout", timeout);
capabilities.setCapability("phantomjs.page.settings.loadImages", loadImages);
capabilities.setCapability("phantomjs.page.settings.userAgent", userAgent);
this.webDriver = new PhantomJSDriver(capabilities);
this.handler = handler;
this.filter = filter;
}
项目:ats-framework
文件:RealHtmlElement.java
/**
* Simulate Enter key
*/
@Override
@PublicAtsApi
public void pressEnterKey() {
new RealHtmlElementState(this).waitToBecomeExisting();
WebElement element = RealHtmlElementLocator.findElement(this);
if (webDriver instanceof PhantomJSDriver) {
element.sendKeys(Keys.ENTER);
} else {
element.sendKeys(Keys.RETURN);
}
}
项目:ats-framework
文件:RealHtmlElementState.java
private void highlightElement(
boolean disregardConfiguration ) {
if (webDriver instanceof PhantomJSDriver) {
// it is headless browser
return;
}
if (disregardConfiguration || UiEngineConfigurator.getInstance().getHighlightElements()) {
try {
WebElement webElement = RealHtmlElementLocator.findElement(element);
String styleAttrValue = webElement.getAttribute("style");
JavascriptExecutor js = (JavascriptExecutor) webDriver;
js.executeScript("arguments[0].setAttribute('style', arguments[1]);",
webElement,
"background-color: #ff9; border: 1px solid yellow; box-shadow: 0px 0px 10px #fa0;"); // to change text use: "color: yellow; text-shadow: 0 0 2px #f00;"
Thread.sleep(500);
js.executeScript("arguments[0].setAttribute('style', arguments[1]);",
webElement,
styleAttrValue);
} catch (Exception e) {
// swallow this error as highlighting is not critical
}
}
}
项目:Java-Testing-Toolbox
文件:PhantomJSConfiguration.java
/**
* {@inheritDoc}
*/
@Override
public PhantomJSDriver start(Capabilities other) {
Capabilities capabilities = this.mergeCapabilities(other);
if (capabilities == null) {
return new PhantomJSDriver();
}
return new PhantomJSDriver(capabilities);
}
项目:Mastering-Software-Testing-with-JUnit-5
文件:LocalWebDriverTest.java
@Test
public void testWithHeadlessBrowsers(HtmlUnitDriver htmlUnit,
PhantomJSDriver phantomjs) {
htmlUnit.get("https://bonigarcia.github.io/selenium-jupiter/");
phantomjs.get("https://bonigarcia.github.io/selenium-jupiter/");
assertTrue(htmlUnit.getTitle().contains("JUnit 5 extension"));
assertNotNull(phantomjs.getPageSource());
}
项目:PrOfESSOS
文件:BrowserSimulator.java
protected final void loadDriver(boolean quit) {
if (quit) {
quit();
}
driver = new PhantomJSDriver();
driver.manage().window().setSize(new Dimension(1024, 768));
driver.manage().timeouts().implicitlyWait(NORMAL_WAIT_TIMEOUT, TimeUnit.SECONDS);
}
项目:Thesis-JHipster
文件:SeleniumTest.java
public SeleniumTest(String geckoDriverPath){
//System.setProperty("webdriver.gecko.driver", geckoDriverPath);
//driver = new FirefoxDriver();
System.setProperty("phantomjs.binary.path", System.getProperty("user.dir")+"/phantomjs");
driver = new PhantomJSDriver();
driver.manage().window().setSize(new Dimension(1920,1080));
baseUrl = "http://127.0.0.1:8080/#";
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
wait = new WebDriverWait(driver,5);
}
项目:charles-rest
文件:IndexStep.java
/**
* Use phantomjs to fetch the web content.
* @return
*/
protected WebDriver phantomJsDriver() {
String phantomJsExecPath = System.getProperty("phantomjsExec");
if(phantomJsExecPath == null || "".equals(phantomJsExecPath)) {
phantomJsExecPath = "/usr/local/bin/phantomjs";
}
DesiredCapabilities dc = new DesiredCapabilities();
dc.setJavascriptEnabled(true);
dc.setCapability(
PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
phantomJsExecPath
);
return new PhantomJSDriver(dc);
}
项目:putput
文件:BrowserTest.java
@Override
public WebDriver getDefaultDriver() {
if(System.getProperty("phantomjs.binary.path") != null) {
return new PhantomJSDriver();
} else {
return new FirefoxDriver();
}
}
项目:XBDD
文件:XbddDriver.java
private static WebDriver getPhantomJsDriver() {
final DesiredCapabilities caps = DesiredCapabilities.phantomjs();
caps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS,
new String[] { "--ignore-ssl-errors=true", "--ssl-protocol=tlsv1", "--web-security=false" });
final PhantomJSDriver phantomJSDriver = new PhantomJSDriver(caps);
phantomJSDriver.manage().window().setSize(new Dimension(1280, 800));
return phantomJSDriver;
}
项目:plovr-maven-plugin
文件:DriverProvider.java
public WebDriver getPhantomDriver() {
System.out.println("getting phantom driver");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setJavascriptEnabled(true);
capabilities.setCapability("webSecurityEnabled", true);
PhantomJSDriver driver = new PhantomJSDriver(capabilities);
driver.manage().timeouts().implicitlyWait(DEFAULT_IMPLICITLY_WAIT_SECS, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(DEFAULT_PAGE_LOAD_TIMEOUT_SECS, TimeUnit.SECONDS);
return driver;
}
项目:easIE
文件:Selenium.java
/**
* Setting up PhantoJSDriver
*
* @return PhantomJSDriver
*/
public static WebDriver setUpPhantomJSDriver(String driverPath) {
File phantomjs = new File(driverPath);
DesiredCapabilities dcaps = new DesiredCapabilities();
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_CLI_ARGS, new String[]{"--ignore-ssl-errors=yes", "--ssl-protocol=tlsv1", "version=2.0", "driverVersion=1.2.0"});
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs.getAbsolutePath());
return new PhantomJSDriver(dcaps);
}
项目:analytics-tests-test
文件:Main.java
public static void main(String[] args) {
WebDriver driver = new PhantomJSDriver();
driver.get("http://www.jan-exner.de/");
JavascriptExecutor js = (JavascriptExecutor) driver;
List<Object> dcrlist = (List<Object>) js.executeScript("return _satellite.rules");
for (Iterator<Object> iterator = dcrlist.iterator(); iterator.hasNext();) {
Object object = (Object) iterator.next();
Map<String, Object> map = (Map<String, Object>) object;
String ruleName = (String) map.get("name");
System.out.println(ruleName);
}
}
项目:analytics-tests-test
文件:BasePooledWebDriverFactory.java
@Override
public WebDriver create() throws Exception {
// create the web driver
LOGGER.log(Level.INFO, "Creating WebDriver");
DesiredCapabilities dcap = DesiredCapabilities.phantomjs();
WebDriver driver = new PhantomJSDriver(dcap);
return driver;
}
项目:seauto
文件:AbstractConfigurableDriverProvider.java
/**
* Screenshooter for HTMLUnit. It saves the html source to disk following the
* same pattern as the screenshot path. The HTMLUnit session is transfered to
* PhantomJs, which takes the screenshot, and is destroyed. The original
* driver is not destroyed
*
* Note: Javascript events, current page changes, etc.. are not saved and are
* not captured in the screenshots taken.
*
* @param path
* - where to save the file. This assumes a png file will be
* generated
* @param baseUrl
* - used to transfer the cookies to the phantomjs driver properly.
*
* @see #getPhantomJsWebDriver()
*/
public void saveScreenshotForHtmlUnit(String path, String baseUrl)
{
final WebDriver driver = this.get();
if (!(driver instanceof HtmlUnitDriver)) {
LOG.warn("Wrong driver called screenshooter for HTMLUnit driver, default to regular screenshooter");
this.saveScreenshotAs(path);
return;
}
PhantomJSDriver phantomJs = (PhantomJSDriver) getPhantomJsWebDriver();
try {
phantomJs.get(baseUrl);
String url = driver.getCurrentUrl();
LOG.debug("Url: {}", url);
for (Cookie cookie : driver.manage().getCookies()) {
LOG.debug("Cookie: {}", cookie.toString());
phantomJs.manage().addCookie(cookie);
}
phantomJs.get(url);
// set current thread to phantomjs, and take screenshot in the default way
this.set(phantomJs);
LOG.debug("HTML Screenshot taken: {}", this.saveScreenshotAs(path));
}
finally {
// set back original driver for this thread
this.set(driver);
phantomJs.close();
phantomJs.quit();
}
}
项目:seauto
文件:AbstractConfigurableDriverProvider.java
/**
* Default implementation throws UnsupportedOperationException
* @return WebDriver instance
*/
protected WebDriver getPhantomJsWebDriver()
{
String pathToBin = getOsSpecificBinaryPathFromProp(PHANTOM_JS_BIN_PROP, "phantomjs");
DesiredCapabilities capabilities = getPhantomJsCapabilities();
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, pathToBin);
return new PhantomJSDriver(capabilities);
}
项目:yuzhouwan
文件:HtmlExporter2BYTES.java
/**
* 将带有 chart、map等动态图表的 html转换为 图片 (可以额外配置 cookie的权限控制).
*
* @param url 目标URL
* @param addedCookie 添加 cookie
* @return 图片 byte数组
*/
@SuppressWarnings(value = {"unchecked"})
@Override
public byte[] convert2Image(String url, Cookie addedCookie, Integer width, Integer height) {
PhantomJSDriver driver = null;
try {
driver = HtmlExporterUtils.prepare(url, addedCookie, width, height);
return driver == null ? null : driver.getScreenshotAs(OutputType.BYTES);
} finally {
HtmlExporterUtils.release(driver);
}
}
项目:yuzhouwan
文件:HtmlExporter2BASE64.java
/**
* 将带有 chart、map等动态图表的 html转换为 图片 (可以额外配置 cookie的权限控制).
*
* @param url 目标URL
* @param addedCookie 添加 cookie
* @return
*/
@SuppressWarnings(value = {"unchecked"})
@Override
public String convert2Image(String url, Cookie addedCookie, Integer width, Integer height) {
PhantomJSDriver driver = null;
try {
driver = HtmlExporterUtils.prepare(url, addedCookie, width, height);
return driver == null ? "" : driver.getScreenshotAs(OutputType.BASE64);
} finally {
HtmlExporterUtils.release(driver);
}
}
项目:yuzhouwan
文件:HtmlExporter2File.java
/**
* 将带有 chart、map等动态图表的 html转换为 图片 (可以额外配置 cookie的权限控制).
*
* @param url 目标URL
* @param addedCookie 添加 cookie
* @return 图片文件
*/
@SuppressWarnings(value = {"unchecked"})
@Override
public File convert2Image(String url, Cookie addedCookie, Integer width, Integer height) {
PhantomJSDriver driver = null;
try {
driver = HtmlExporterUtils.prepare(url, addedCookie, width, height);
return driver == null ? null : driver.getScreenshotAs(OutputType.FILE);
} finally {
HtmlExporterUtils.release(driver);
}
}
项目:yuzhouwan
文件:HtmlExporterUtils.java
/**
* 初始化配置 PhantomJS Driver.
*
* @param url 目标URL
* @param addedCookie 添加 cookie
* @return 初始化过的 PhantomJS Driver
*/
public static PhantomJSDriver prepare(String url, Cookie addedCookie, Integer width, Integer height) {
// chrome driver maybe not necessary
// download from https://sites.google.com/a/chromium.org/chromedriver/downloads
// System.setProperty("webdriver.chrome.driver",
// DirUtils.RESOURCES_PATH.concat(
// PropUtils.getInstance().getProperty("html.exporter.webdriver.chrome.driver")));
DesiredCapabilities phantomCaps = DesiredCapabilities.chrome();
phantomCaps.setJavascriptEnabled(true);
phantomCaps.setCapability("phantomjs.page.settings.userAgent",
PropUtils.getInstance().getProperty("html.exporter.user.agent"));
PhantomJSDriver driver = new PhantomJSDriver(phantomCaps);
driver.manage().timeouts().implicitlyWait(Integer.valueOf(PropUtils.getInstance()
.getProperty("html.exporter.driver.timeouts.implicitly.seconds")), TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(Integer.valueOf(PropUtils.getInstance()
.getProperty("html.exporter.driver.timeouts.page.load.seconds")), TimeUnit.SECONDS);
driver.manage().timeouts().setScriptTimeout(Integer.valueOf(PropUtils.getInstance()
.getProperty("html.exporter.driver.timeouts.script.seconds")), TimeUnit.SECONDS);
if (width == null || height == null) driver.manage().window().maximize();
else driver.manage().window().setSize(new Dimension(width, height));
if (addedCookie != null) driver.manage().addCookie(addedCookie);
driver.get(url);
// try {
// // timeout is not work, so fix it by sleeping thread
// Thread.sleep(Integer.valueOf(PropUtils.getInstance()
// .getProperty("html.exporter.driver.timeouts.implicitly.seconds")) * 1000);
// } catch (InterruptedException e) {
// throw new RuntimeException(e);
// }
return driver;
}
项目:yuzhouwan
文件:HtmlExporterUtils.java
/**
* Release those resource of phantomjs, include shutdown phantom process.
*
* @param driver close cannot shutdown, should do it with quit()
*/
public static void release(PhantomJSDriver driver) {
try {
if (driver != null) driver.close();
} finally {
if (driver != null) driver.quit();
}
}
项目:ya.blogo
文件:PhantomJSRule.java
@Override
public void before() {
File phantomjs = Phanbedder.unpack();
DesiredCapabilities dcaps = new DesiredCapabilities();
dcaps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, phantomjs.getAbsolutePath());
driver = new PhantomJSDriver(dcaps);
}
项目:detective
文件:WebDriverTest.java
/**
* 60 Max
* 40 looks stable
* @throws InterruptedException
*/
//@Test
public void testLocalPhantomjs() throws InterruptedException {
runMultipleThread(60, new WebDriverFactory(){
public WebDriver getDriver() {
return new PhantomJSDriver();
}
} );
}
项目:tool-wifihotspot-autoreconnect
文件:PhantomJsWebDriverFactory.java
public WebDriver get() {
File phantomJsExe = new File("phantomjs-1.9.7-windows/phantomjs.exe");
Map<String, Object> caps = new HashMap<>();
caps.put(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY,
phantomJsExe.getAbsolutePath());
DesiredCapabilities capabilities = new DesiredCapabilities(caps);
WebDriver driver = new PhantomJSDriver(capabilities);
Dimension DEFAULT_WINDOW_SIZE = new Dimension(1024, 768);
driver.manage().window().setSize(DEFAULT_WINDOW_SIZE);
return driver;
}
项目:solid-prototype-webdriver
文件:LocalPhantomJSWebDriver.java
@Override
public WebDriver getWebDriver()
{
DesiredCapabilities caps = new DesiredCapabilities();
caps.setJavascriptEnabled(true);
caps.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "src/test/resources/phantomjs");
caps.setCapability("takesScreenshot", true);
return new PhantomJSDriver(caps);
}
项目:plovr-maven-plugin
文件:DriverProvider.java
public WebDriver getPhantomDriver() {
System.out.println("getting phantom driver");
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setJavascriptEnabled(true);
capabilities.setCapability("webSecurityEnabled", true);
PhantomJSDriver driver = new PhantomJSDriver(capabilities);
driver.manage().timeouts().implicitlyWait(DEFAULT_IMPLICITLY_WAIT_SECS, TimeUnit.SECONDS);
driver.manage().timeouts().pageLoadTimeout(DEFAULT_PAGE_LOAD_TIMEOUT_SECS, TimeUnit.SECONDS);
return driver;
}