Java 类org.openqa.selenium.support.events.EventFiringWebDriver 实例源码

项目:cucumber-framework-java    文件:JavaScriptHelper.java   
public JsonElement sendXMLHttpGETRequest( final String url, final boolean async )
{
    ( ( EventFiringWebDriver ) driver ).manage().timeouts().setScriptTimeout( 20, TimeUnit.SECONDS );
    StrBuilder builder = new StrBuilder( "var callback = arguments[arguments.length - 1];\n" );
    builder.appendln( "var xhr = new XMLHttpRequest();" );
    builder.append( "xhr.open( 'GET', '" ).append( url ).append( "', '" ).append( async ).append( "' );" );
    builder.appendln( "xhr.onreadystatechange = function() { " );
    builder.appendln( "  if (xhr.readyState == 4) { " );
    builder.appendln( "    callback(xhr.responseText);" );
    builder.appendln( "  }" );
    builder.appendln( "}" );
    builder.appendln( "xhr.send();" );

    Object response = executeAsyncScript( builder.toString() );
    Gson gson = new Gson();
    return gson.fromJson( ( String ) response, JsonElement.class );
}
项目:de.lgohlke.selenium-webdriver    文件:DriverService.java   
@Override
@SuppressWarnings("unchecked")
protected void before() throws Throwable {
    DriverServiceFactory driverServiceFactory = drivertype.driverServiceFactory(configuration);
    service = driverServiceFactory.createService();

    log.info("starting service");
    service.start();

    driver = driverServiceFactory.createWebDriver(service);
    Preconditions.checkNotNull(driver,"driver should not be null after creation");

    if (!listeners.isEmpty()) {
        EventFiringWebDriver eventFiringWebDriver = new EventFiringWebDriver(driver);
        listeners.forEach(eventFiringWebDriver::register);
        driver = eventFiringWebDriver;
    }
}
项目:de.lgohlke.selenium-webdriver    文件:DriverServiceTest.java   
@Test
@SuppressWarnings("unchecked")
public void shouldBeWrappedInEventFiringWebdriver() throws Throwable {
    AbstractWebDriverEventListener eventListener = new AbstractWebDriverEventListener() {
    };
    driverService = new DriverService(DriverType.PHANTOMJS, eventListener);

    driverService.before();

    WebDriver driver = driverService.getDriver();
    assertThat(driver).isInstanceOf(EventFiringWebDriver.class);

    EventFiringWebDriver eventFiringWebDriver = (EventFiringWebDriver) driver;
    Field                field                = EventFiringWebDriver.class.getDeclaredField("eventListeners");
    field.setAccessible(true);

    assertThat(((List<WebDriverEventListener>) field.get(eventFiringWebDriver)).size()).isEqualTo(1);
}
项目:grid-refactor-remote-server    文件:DefaultSession.java   
private DefaultSession(final DriverFactory factory, TemporaryFilesystem tempFs,
                       SessionId sessionId, final Capabilities capabilities) throws Exception {
  this.knownElements = new KnownElements();
  this.sessionId = sessionId;
  this.tempFs = tempFs;
  final BrowserCreator browserCreator = new BrowserCreator(factory, capabilities);
  final FutureTask<EventFiringWebDriver> webDriverFutureTask =
      new FutureTask<EventFiringWebDriver>(browserCreator);
  executor = new ThreadPoolExecutor(1, 1,
                                    600L, TimeUnit.SECONDS,
                                    new LinkedBlockingQueue<Runnable>());

  // Ensure that the browser is created on the single thread.
  EventFiringWebDriver initialDriver = execute(webDriverFutureTask);

  if (!isQuietModeEnabled(browserCreator, capabilities)) {
    // Memo to self; this is not a constructor escape of "this" - probably ;)
    initialDriver.register(new SnapshotScreenListener(this));
  }

  this.driver = initialDriver;
  this.capabilities = browserCreator.getCapabilityDescription();
  updateLastAccessTime();
}
项目:WebAuto    文件:ListenerHelper.java   
private WebDriver configDriver(WebDriver driver) {

        // Adding Web Event Listener
        if (eventFiring) {
            EventFiringWebDriver efirDriver = new EventFiringWebDriver(driver);
            WebEventListener driverListner = new WebEventListener();
            driver = efirDriver.register(driverListner);
        } else {
            log.warn(
                    "FrameWork Wont Work Properly : 'Event Firing' Set To : '{}'",
                    eventFiring);
        }

        if (fullscreen) {
            driver.manage().window().maximize();
        }

        driver.manage().timeouts().pageLoadTimeout(MAX_WAIT, TimeUnit.SECONDS);
        driver.manage().timeouts().implicitlyWait(MAX_WAIT, TimeUnit.SECONDS);
        return driver;
    }
项目:WebAuto    文件:Element.java   
/**
 * Check if WebElement is present in the page Returns the boolean status
 * 
 * @param
 */
public synchronized boolean isPresent(By by) {
    log.trace("Is Present Element : {}", by);
    WebDriver driver = DriverManager.getDriver();
    WebDriver simpleDriver = driver;
    if (driver instanceof EventFiringWebDriver) {
        EventFiringWebDriver eventFirDriver = (EventFiringWebDriver) driver;
        simpleDriver = eventFirDriver.getWrappedDriver();
    }

    try {
        if (simpleDriver.findElements(by).size() > 0) {
            return true;
        }
    } catch (Exception e) {
        return false;
    }
    return false;
}
项目:automation-test-engine    文件:MyRemoteDriver.java   
/**
 * {@inheritDoc}
 */
@Override
public WebDriver getWebDriverInstance() {
    WebDriver retVal = getWebDriver();
    if (null == retVal || !(((EventFiringWebDriver)retVal).getWrappedDriver() instanceof RemoteWebDriver)) {

        try {
            RemoteWebDriver remoteVal = new RemoteWebDriver(new URL(url), caps.get());
            remoteVal.setFileDetector(new LocalFileDetector());
            retVal = remoteVal;
        } catch (MalformedURLException e) {
            //TODO add handling for bad url
            e.printStackTrace();
        }

        setWebDriver(retVal);
    }
    return retVal;

}
项目:dropwizard-experiment    文件:WebDriverFactory.java   
/**
 * Create a WebDriver instance with useful settings based on the WEBDRIVER environment variable.
 * @return The WebDriver
 */
public static EventFiringWebDriver createFromEnvVar() {
    String browser = System.getenv(WEBDRIVER_ENV_NAME);
    if (browser == null) {
        log.info("WebDriver type not specified, defaulting to Chrome.");
        browser = "chrome";
    }

    switch (browser.toLowerCase()) {
        case "firefox":
            return createFirefox();

        default:
            log.warn("Unknown WebDriver type '{}', defaulting to Chrome.", browser);
        case "chrome":
            return createChrome();
    }
}
项目:willtest    文件:AbstractSeleniumProvider.java   
private WebDriver callPostConstruct(D webDriverToBeChangedAfterConstruction) {
    webDriverConfigurationParticipantList
            .forEach(participant -> participant.postConstruct(webDriverToBeChangedAfterConstruction));
    EventFiringWebDriver eventFiringWebDriver = new EventFiringWebDriver(webDriverToBeChangedAfterConstruction);
    eventListeners.forEach(eventListener -> eventFiringWebDriver.register(eventListener));
    return eventFiringWebDriver;
}
项目:webdrivermanager    文件:OtherWebDriverTest.java   
@Parameters(name = "{index}: {0} {1}")
public static Collection<Object[]> data() {
    return asList(new Object[][] {
            { SafariDriver.class, WebDriverException.class },
            { EventFiringWebDriver.class, InstantiationException.class },
            { HtmlUnitDriver.class, null },
            { RemoteWebDriver.class, IllegalAccessException.class } });
}
项目:de.lgohlke.selenium-webdriver    文件:ErrorLoggingWebDriverEventListenerIT.java   
@Before
public void beforeEachTest() throws IOException {
    tempFolder = testFolder.newFolder();
    driverPhantomJS = new EventFiringWebDriver(driverServicePhantomJS.getDriver())
            .register(new ErrorLoggingWebDriverEventListener(tempFolder.getPath()));
    chromeEventListener = new ErrorLoggingWebDriverEventListener(tempFolder.getPath());
    driverChrome = new EventFiringWebDriver(driverServiceChrome.getDriver())
            .register(chromeEventListener);
}
项目:grid-refactor-remote-server    文件:DefaultSession.java   
public EventFiringWebDriver call() throws Exception {
  WebDriver rawDriver = factory.newInstance(capabilities);
  Capabilities actualCapabilities = capabilities;
  if (rawDriver instanceof HasCapabilities) {
    actualCapabilities = ((HasCapabilities) rawDriver).getCapabilities();
    isAndroid = actualCapabilities.getPlatform().is(Platform.ANDROID);
  }
  describedCapabilities = getDescription(rawDriver, actualCapabilities);
  return new EventFiringWebDriver(rawDriver);
}
项目:JavaIncrementalParser    文件:AngularJSDroneExtension.java   
@Override
public WebDriver enhance(WebDriver instance, Class<? extends Annotation> qualifier)
{
    //System.out.println("Adding AngularJS capabilities to WebDriver");
    instance.manage().timeouts().setScriptTimeout(2, TimeUnit.SECONDS);
    EventFiringWebDriver driver = new EventFiringWebDriver(instance);
    WebDriverEventListener listener = new AngularJSEventHandler();
    driver.register(listener);
    return driver;
}
项目:JavaIncrementalParser    文件:AngularJSDroneExtension.java   
@Override
public WebDriver deenhance(WebDriver enhancedInstance, Class<? extends Annotation> qualifier)
{
    if (EventFiringWebDriver.class.isInstance(enhancedInstance)) {
        //System.out.println("Removing AngularJS capabilities to WebDriver");
        EventFiringWebDriver driver = (EventFiringWebDriver) enhancedInstance;
        driver.unregister(listener);
        listener = null;
        return driver.getWrappedDriver();
    }
    return enhancedInstance;
}
项目:simpleWebtest    文件:TestCase.java   
/**
 * 如果当前进程没有绑定driver,创建一个然后绑定上,如果已经有了就直接返回
 * create a driver for this thread if not exist. or return it directly
 */
public static WebDriver getDriver(){
    WebDriver driver= DriverManager.ThreadDriver.get();
    if (driver==null){
        if (browserType.equals("firefox")){
             driver = new EventFiringWebDriver(new FirefoxDriver()).register(new LogEventListener());
             ThreadDriver.set(driver);
            //找东西前等三秒wait 3 second for every find by
            DriverManager.getDriver().manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);
        }
        //有需求的同学自己在这里添加IE等浏览器的支持
        //you can add ie/chrome or other driver here
        }
    return driver;
}
项目:automation-test-engine    文件:AbstractWebDriverBase.java   
/**
     * Sets the web driver.
     *
     * @param webDriver
     *            the webDriver to set
     */
    public final void setWebDriver(final WebDriver webDriver) {

        EventFiringWebDriver eDriver  = new EventFiringWebDriver(webDriver);
//      multiWindowsHandler = new MultiWindowsHandler(this);
        eDriver.register((MultiWindowsHandler)GlobalUtils.getTargetObject(multiWindowsHandler));
        this.webDriver = eDriver;
    }
项目:arquillian-extension-angularjs    文件:AngularJSDroneExtension.java   
@Override
public WebDriver enhance(WebDriver instance, Class<? extends Annotation> qualifier) {
    instance.manage().timeouts().setScriptTimeout(2, TimeUnit.SECONDS);
    EventFiringWebDriver driver = new EventFiringWebDriver(instance);
    listener = new AngularJSEventHandler();
    driver.register(listener);
    return driver;
}
项目:arquillian-extension-angularjs    文件:AngularJSDroneExtension.java   
@Override
public WebDriver deenhance(WebDriver enhancedInstance, Class<? extends Annotation> qualifier) {
    if (EventFiringWebDriver.class.isInstance(enhancedInstance)) {
        EventFiringWebDriver driver = (EventFiringWebDriver) enhancedInstance;
        driver.unregister(listener);
        listener = null;
        return driver.getWrappedDriver();
    }
    return enhancedInstance;
}
项目:seletest    文件:EhCacheGenerator.java   
@Override
public Object generate(Object target, Method method, Object... params) {
        StringBuilder sb = new StringBuilder();
        sb.append(SessionContext.getSession().getWebDriver().toString());
              sb.append(" ").append(method.getName());
        for (Object param : params)
            if (param instanceof WebElement && !(SessionContext.getSession().getWebDriver() instanceof EventFiringWebDriver))
                sb.append(" ").append(((RemoteWebElement) param).getId());
            else if (param instanceof WebElement && SessionContext.getSession().getWebDriver() instanceof EventFiringWebDriver) {
                sb.append(" ").append(((WebElement) param).getLocation());
            } else {
                sb.append(" ").append(param.toString());
            }
        return sb.toString();
    }
项目:jfunk    文件:BaseWebDriverProvider.java   
@Override
public WebDriver get() {
    String webDriverKey = config.get(WebConstants.WEBDRIVER_KEY);
    log.info("Creating new WebDriver instance with key '{}'...", webDriverKey);

    DesiredCapabilities capabilities = capabilitiesMap.get(webDriverKey);

    // we must disable WebDriver's overlapping check to be able to use our own topMostElementCheck flag
    capabilities.setCapability("overlappingCheckDisabled", true);

    //TODO this flag tells FirefoxDriver whether to run in legacy mode or in Marionette mode
    // => remove it, once the W3C actions API is correctly implemented in GeckoDriver
    Boolean isWebdriverFirefoxMarionette = config.getBoolean(FirefoxDriver.SystemProperty.DRIVER_USE_MARIONETTE);
    capabilities.setCapability(FirefoxDriver.MARIONETTE, isWebdriverFirefoxMarionette);

    // post event so users can customize capabilities
    eventBus.post(new BeforeWebDriverCreationEvent(webDriverKey, capabilities));

    WebDriver webDriver = createWebDriver(capabilities);
    checkState(!(webDriver instanceof EventFiringWebDriver),
            "WebDrivers must not be wrapped explicitly into an EventFiringWebDriver. This is implicitly done by jFunk.");

    long implicitWaitSeconds = config.getLong(WebConstants.WEBDRIVER_IMPLICIT_WAIT_SECONDS, 0L);
    if (implicitWaitSeconds > 0) {
        webDriver.manage().timeouts().implicitlyWait(implicitWaitSeconds, TimeUnit.SECONDS);
    }

    EventFiringWebDriver eventFiringWebDriver = new EventFiringWebDriver(webDriver);
    for (WebDriverEventListener listener : eventListeners) {
        eventFiringWebDriver.register(listener);
    }
    return eventFiringWebDriver;
}
项目:dropwizard-experiment    文件:WebDriverFactory.java   
/**
 * Create a Chrome WebDriver instance.
 * @return The WebDriver
 */
public static EventFiringWebDriver createChrome() {
    String chromeDriverBinary = WebDriverBinaryFinder.findChromeDriver();
    System.setProperty("webdriver.chrome.driver", chromeDriverBinary);
    log.info("Using ChromeDriver binary from {}", chromeDriverBinary);

    // Prevent annoying yellow warning bar from being displayed.
    ChromeOptions options = new ChromeOptions();
    options.setExperimentalOption("excludeSwitches", ImmutableList.of("ignore-certificate-errors"));
    DesiredCapabilities caps = getCapabilities();
    caps.setCapability(ChromeOptions.CAPABILITY, options);

    return withReports(new ChromeDriver(caps));
}
项目:cucumber-framework-java    文件:WebDriverWebController.java   
public void enableActionsLogging() {
    this.setDriver(new EventFiringWebDriver(driver).register(new ReportingWebDriverEventListner()));
}
项目:cucumber-framework-java    文件:WebDriverWebController.java   
public void disableActionsLogging() {
    this.setDriver(new EventFiringWebDriver(driver).unregister(new ReportingWebDriverEventListner()));
}
项目:cucumber-framework-java    文件:ControllerBase.java   
public void enableActionsLogging() {
    this.setDriver(new EventFiringWebDriver(driver).register(new ReportingWebDriverEventListner()));
}
项目:cucumber-framework-java    文件:ControllerBase.java   
public void disableActionsLogging() {
    this.setDriver(new EventFiringWebDriver(driver).unregister(new ReportingWebDriverEventListner()));
}
项目:bobcat    文件:WebDriverProvider.java   
private void registerEventListeners(final EventFiringWebDriver closingWebDriver) {
  listeners.stream().forEach(closingWebDriver::register);
}
项目:seleniumtestsframework    文件:WebUIDriver.java   
public WebDriver createRemoteWebDriver(final String browser, final String mode) throws Exception {
    WebDriver driver = null;
    config.setBrowser(BrowserType.getBrowserType(browser));
    config.setMode(DriverMode.valueOf(mode));

    if (config.getMode() == DriverMode.ExistingGrid) {
        webDriverBuilder = new RemoteDriverFactory(this.config);
    } else {
        if (config.getBrowser() == BrowserType.FireFox) {
            webDriverBuilder = new FirefoxDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.Marionette) {
            webDriverBuilder = new MarionetteDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.InternetExplore) {
            webDriverBuilder = new IEDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.Chrome) {
            webDriverBuilder = new ChromeDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.HtmlUnit) {
            webDriverBuilder = new HtmlUnitDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.Safari) {
            webDriverBuilder = new SafariDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.SauceLabs) {
            webDriverBuilder = new SauceLabsDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.Android) {
            webDriverBuilder = new AndroidDriverFactory(this.config);
        } else if (config.getBrowser() == BrowserType.IPhone) {
            webDriverBuilder = new IPhoneDriverFactory(this.config);
        } else {
            throw new RuntimeException("Unsupported browser: " + browser);
        }
    }

    synchronized (this.getClass()) {
        driver = webDriverBuilder.createWebDriver();
        if(config.isEventFiringWebDriver()) {
            CustomEventListener eventListener = new CustomEventListener();
            EventFiringWebDriver eventFiringWebDriver = new EventFiringWebDriver(driver);
            eventFiringWebDriver.register(eventListener);
            WebUIDriver.setWebDriver(eventFiringWebDriver);
            driverSession.set(eventFiringWebDriver);
            driver = handleListeners(eventFiringWebDriver);
        } else {
            driverSession.set(driver);
            driver = handleListeners(driver);
        }
    }
    return driver;
}
项目:de.lgohlke.selenium-webdriver    文件:DebugWebDriverEventListenerIT.java   
@Before
public void beforeEachTest() throws IOException {
    folder = testFolder.getRoot();
    driver = new EventFiringWebDriver(driverService.getDriver());
}
项目:grid-refactor-remote-server    文件:SessionCleaner.java   
void checkExpiry() {
  for (SessionId sessionId : driverSessions.getSessions()) {
    Session session = driverSessions.get(sessionId);
    if (session != null) {
      boolean useDeleteSession = false;
      boolean killed = false;

      boolean inUse = session.isInUse();
      if (!inUse && session.isTimedOut(clientGoneTimeout)) {
        useDeleteSession = true;
        log.info("Session " + session.getSessionId() + " deleted due to client timeout");
      }
      if (inUse && session.isTimedOut(insideBrowserTimeout)) {
        WebDriver driver = session.getDriver();
        if (driver instanceof EventFiringWebDriver){
          driver = ((EventFiringWebDriver)driver).getWrappedDriver();
        }
        if (driver instanceof Killable) {
          //session.interrupt();
          ((Killable) driver).kill();
          killed = true;
          log.warning("Browser killed and session " + session.getSessionId() + " terminated due to in-browser timeout.");
        } else {
          useDeleteSession = true;
          log.warning("Session " + session.getSessionId() + " deleted due to in-browser timeout. " +
                      "Terminating driver with DeleteSession since it does not support Killable, "
                      + "the driver in question does not support selenium-server timeouts fully");
        }
      }

      if (useDeleteSession) {
        DeleteSession deleteSession = new DeleteSession(session);
        try {
          deleteSession.call();
        } catch (Exception e) {
          throw new RuntimeException(e);
        }
      }

      if (useDeleteSession || killed) {
        driverSessions.deleteSession(sessionId);
        final PerSessionLogHandler logHandler = LoggingManager.perSessionLogHandler();
        logHandler.transferThreadTempLogsToSessionLogs(sessionId);
        logHandler.removeSessionLogs(sessionId);
      }
    }
  }
}
项目:arquillian-extension-angularjs    文件:AngularJSDroneExtension.java   
@Override
public boolean canEnhance(InstanceOrCallableInstance instance, Class<?> droneType,
    Class<? extends Annotation> qualifier) {
    return droneType.isAssignableFrom(EventFiringWebDriver.class);
}
项目:cloud-dev-studio    文件:DevSWebDriver.java   
public DevSWebDriver() throws Exception {
    driver = new EventFiringWebDriver(BrowserManager.getWebDriver());//firefox web driver
    maxWaitTime = UITestConstants.WAITING_TIME_CONSTANT;
    driver.register(errorListener);
}
项目:dropwizard-experiment    文件:WebDriverFactory.java   
private static EventFiringWebDriver withReports(WebDriver driver) {
    return ReportingWebDriverEventListener.applyTo(driver, REPORTS_CLASS_PREFIX);
}
项目:jfunk    文件:WebDriverUtils.java   
/**
 * Returns the wrapped {@link WebDriver} instance if the given one is an
 * {@link EventFiringWebDriver}.
 * 
 * @param webDriver
 *            the {@link WebDriver} instance
 * @return the wrapped {@link WebDriver} instance
 */
public static WebDriver getWrappedDriver(final WebDriver webDriver) {
    if (webDriver instanceof EventFiringWebDriver) {
        return ((EventFiringWebDriver) webDriver).getWrappedDriver();
    }

    return webDriver;
}
项目:dropwizard-experiment    文件:WebDriverFactory.java   
/**
 * Create a Firefox WebDriver instance.
 * @return The WebDriver
 */
public static EventFiringWebDriver createFirefox() {
    return withReports(new FirefoxDriver(getCapabilities()));
}