这是WebDriver服务器的初始启动页面

时间:2013-11-14 13:44:17

标签: selenium selenium-webdriver testng

相同的代码在firefox中运行,但它没有在IE9中执行并显示字符串消息“这是WebDriver服务器的初始启动页面”。而其他人没有发现错误

        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);
    }
}

输出: -         启动InternetExplorerDriver服务器(32位) 2.37.0.0 聆听31651号港口

9 个答案:

答案 0 :(得分:6)

确保每个区域的保护模式设置值相同。参考Required Configuration for IE

更新:当您无权访问更改设置时,将ignoreZoomSettingignoreProtectedModeSettings功能设置为true会有所帮助。

如果您使用的是qaf,则可以设置如下功能:

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

答案 1 :(得分:5)

  • 在Windows Vista或Windows 7上的IE 7或更高版本上,您必须设置 每个区域的保护模式设置为相同值。价值 只要每个区域都相同,就可以打开或关闭。设置 保护模式设置,选择" Internet选项..."来自 “工具”菜单,然后单击“安全”选项卡。对于每个区域,都会有 标签为“#34;启用保护”选项卡底部的复选框 模式&#34 ;.
  • 此外,"增强保护模式"必须为IE 10禁用 更高。此选项位于Internet的“高级”选项卡中 选项对话框。

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

答案 2 :(得分:3)

还要确保缩放设置为100%。

答案 3 :(得分:2)

尝试使用旧版本的IEDriverServer。我尝试了一切,如启用保护模式和100%放大,但仍然停留在localhost页面。所以我下载并使用了旧版本的iedriver 3.4和Voila,它起作用了。

答案 4 :(得分:1)

解决方案:

修改文件.. \ 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);
};

答案 5 :(得分:1)

即使我有同样的问题。当我确保这里的两条评论正确完成时,它就开始工作了

  1. 确保每个区域的保护模式设置值相同

  2. 确保您的缩放设置为100%。

  3. 非常感谢上述两条评论。

答案 6 :(得分:1)

使用64位IEDriverServer为我解决了此问题。

我尝试了所有功能,但仍然失败,最后修复了64位IE服务器。

答案 7 :(得分:0)

使用以下代码解决"类型的问题;这是WebDriver服务器" 的初始启动页面。在我的机器上工作正常。

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();

答案 8 :(得分:0)

以下代码为我解决了这个问题。

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