This is the initial start page for the WebDriver s

2020-07-10 19:54发布

问题:

same code is running in firefox but it is not executing in IE9 and displaying the String message "This is the initial start page for the WebDriver server." while no error found on others

        public void setUp() throws Exception {

    File file = new File("C:/Users/Sunil.Wali/Desktop/Softwares/IEDriverServer_Win32_2.37.0/IEDriverServer.exe");
    System.setProperty("webdriver.ie.driver", file.getAbsolutePath());

    driver = new InternetExplorerDriver();
    // driver = new FirefoxDriver();

    baseUrl = "https://tssstrpms501.corp.trelleborg.com:12001";
    driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
}
      @Test
public void testLogin() throws Exception {
    driver.get(baseUrl + "/ProcessPortal/login.jsp");
    driver.findElement(By.id("username")).clear();
    driver.findElement(By.id("username")).sendKeys("sunil.wali");
    driver.findElement(By.id("password")).clear();
    driver.findElement(By.id("password")).sendKeys("Trelleborg@123");
    driver.findElement(By.id("log_in")).click();
    driver.findElement(By.id("processPortalUserDropdown")).click();
    driver.findElement(By.id("dijit_MenuItem_56_text")).click();
}

@After
public void tearDown() throws Exception {
    driver.quit();
    String verificationErrorString = verificationErrors.toString();
    if (!"".equals(verificationErrorString)) {
        fail(verificationErrorString);
    }
}

Output:- Started InternetExplorerDriver server (32-bit) 2.37.0.0 Listening on port 31651

回答1:

Make sure you have same value of Protected Mode settings for each zone. Refere Required Configuration for IE.

UPDATE: setting ignoreZoomSetting and ignoreProtectedModeSettings capabilities to true helps when you don't have access to change settings.

If you are using qaf you can set capabilities as below:

driver.name=iexplorerDriver
iexplorer.additional.capabilities={'ignoreProtectedModeSettings':true,'ignoreZoomSetting':true,'nativeEvents':false,'acceptSslCerts':true}


回答2:

  • On IE 7 or higher on Windows Vista or Windows 7, you must set the Protected Mode settings for each zone to be the same value. The value can be on or off, as long as it is the same for every zone. To set the Protected Mode settings, choose "Internet Options..." from the Tools menu, and click on the Security tab. For each zone, there will be a check box at the bottom of the tab labeled "Enable Protected Mode".
  • Additionally, "Enhanced Protected Mode" must be disabled for IE 10 and higher. This option is found in the Advanced tab of the Internet Options dialog.

http://code.google.com/p/selenium/wiki/InternetExplorerDriver#Required_Configuration



回答3:

Also make sure that your zoom is set up to 100%.



回答4:

Try using an older version of IEDriverServer. I tried to everything like enabling protection mode and zoom on 100% but was still stuck on localhost page. So i downloaded and used an older version of iedriver 3.4 and Voila it worked.



回答5:

Solution:

Modify the file ..\node_modules\protractor\lib\driverProviders\local.js

 /*
 * This is an implementation of the Local Driver Provider.
 * It is responsible for setting up the account object, tearing
 * it down, and setting up the driver correctly.
 *
 * TODO - it would be nice to do this in the launcher phase,
 * so that we only start the local selenium once per entire launch.
 * ------Modified by Jonathan Arias mail: jab504@gmail.com-----------
 */
var util = require('util'),
    log = require('../logger.js'),
    path = require('path'),
    remote = require('selenium-webdriver/remote'),
    fs = require('fs'),
    q = require('q'),
    DriverProvider = require('./driverProvider');

var LocalDriverProvider = function(config) {
  DriverProvider.call(this, config);
  this.server_ = null;
};
util.inherits(LocalDriverProvider, DriverProvider);


/**
 * Helper to locate the default jar path if none is provided by the user.
 * @private
 */
LocalDriverProvider.prototype.addDefaultBinaryLocs_ = function() {
  if (!this.config_.seleniumServerJar) {
    log.debug('Attempting to find the SeleniumServerJar in the default ' +
        'location used by webdriver-manager');
    this.config_.seleniumServerJar = path.resolve(__dirname,
        '../../selenium/selenium-server-standalone-' +
        require('../../config.json').webdriverVersions.selenium + '.jar');
  }
  if (!fs.existsSync(this.config_.seleniumServerJar)) {
    throw new Error('No selenium server jar found at the specified ' +
        'location (' + this.config_.seleniumServerJar +
        '). Check that the version number is up to date.');
  }
  if (this.config_.capabilities.browserName === 'chrome') {
    if (!this.config_.chromeDriver) {
      log.debug('Attempting to find the chromedriver binary in the default ' +
          'location used by webdriver-manager');
      this.config_.chromeDriver =
          path.resolve(__dirname, '../../selenium/chromedriver');
    }

    // Check if file exists, if not try .exe or fail accordingly
    if (!fs.existsSync(this.config_.chromeDriver)) {
      if (fs.existsSync(this.config_.chromeDriver + '.exe')) {
        this.config_.chromeDriver += '.exe';
      } else {
        throw new Error('Could not find chromedriver at ' +
          this.config_.chromeDriver);
      }
    }
  }

 if (this.config_.capabilities.browserName === 'internet explorer') {
    if (!this.config_.IEDriverServer) {
      log.debug('Attempting to find the Internet explorer binary in the default ' +
          'location used by webdriver-manager');
      this.config_.IEDriverServer =
          path.resolve(__dirname, '../../selenium/IEDriverServer');
    }

    // Check if file exists, if not try .exe or fail accordingly
    if (!fs.existsSync(this.config_.IEDriverServer)) {
      if (fs.existsSync(this.config_.IEDriverServer + '.exe')) {
        this.config_.IEDriverServer += '.exe';
      } else {
        throw new Error('Could not find IEDriverServer at ' +
          this.config_.IEDriverServer);
      }
    }
  }

};

/**
 * Configure and launch (if applicable) the object's environment.
 * @public
 * @return {q.promise} A promise which will resolve when the environment is
 *     ready to test.
 */
LocalDriverProvider.prototype.setupEnv = function() {
  var deferred = q.defer(),
      self = this;

  this.addDefaultBinaryLocs_();

  log.puts('Starting selenium standalone server...');

  // configure server
  if (this.config_.chromeDriver) {
    this.config_.seleniumArgs.push('-Dwebdriver.chrome.driver=' +
      this.config_.chromeDriver);
  }
    if (this.config_.IEDriverServer) {
    this.config_.seleniumArgs.push('-Dwebdriver.ie.driver=' +
      this.config_.IEDriverServer);
  }
  this.server_ = new remote.SeleniumServer(this.config_.seleniumServerJar, {
      args: this.config_.seleniumArgs,
      port: this.config_.seleniumPort
    });

  //start local server, grab hosted address, and resolve promise
  this.server_.start().then(function(url) {
    log.puts('Selenium standalone server started at ' + url);
    self.server_.address().then(function(address) {
      self.config_.seleniumAddress = address;
      deferred.resolve();
    });
  });

  return deferred.promise;
};

/**
 * Teardown and destroy the environment and do any associated cleanup.
 * Shuts down the drivers and server.
 *
 * @public
 * @override
 * @return {q.promise} A promise which will resolve when the environment
 *     is down.
 */
LocalDriverProvider.prototype.teardownEnv = function() {
  var self = this;
  var deferred = q.defer();
  DriverProvider.prototype.teardownEnv.call(this).then(function() {
    log.puts('Shutting down selenium standalone server.');
    self.server_.stop().then(function() {
      deferred.resolve();
    });
  });
  return deferred.promise;
};

// new instance w/ each include
module.exports = function(config) {
  return new LocalDriverProvider(config);
};


回答6:

Even I had the same issue . And it started working when I made sure that the two comments over here done properly

  1. Make sure you have same value of Protected Mode settings for each zone

  2. make sure that your zoom is set up to 100%.

Thanks A lot for the above two comments.



回答7:

usage of 64 bit IEDriverServer fixed this issue for me.

I tried all the capabilities, still failed and at last 64 bit IE server fixed.



回答8:

Use this below code to resolve the issue of type "This is the initial start page for the WebDriver server". In my machine its working fine.

System.setProperty("webdriver.ie.driver", "\\IEDriverServer.exe path");
DesiredCapabilities capabilities = DesiredCapabilities.internetExplorer();
        // this line of code is to resolve protected mode issue capabilities.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
        capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
        driver=new InternetExplorerDriver();


回答9:

The below code fixed the issue for me.

DesiredCapabilities capability = DesiredCapabilities.internetExplorer();
capability.setCapability(InternetExplorerDriver.INTRODUCE_FLAKINESS_BY_IGNORING_SECURITY_DOMAINS, true);
capability.setCapability(InternetExplorerDriver.IGNORE_ZOOM_SETTING, true);