当前位置: 首页 > 知识库问答 >
问题:

无法在Windows Server 2016上使用Selenium和IEWebDriverServer 3.4.0运行针对IE11的自动化测试

养俊驰
2023-03-14
  • 操作系统:Windows Server 2016数据中心(64位)
  • 浏览器:Internet Explorer 11.0.14393.0
  • 量角器:5.1.2
  • Selenium服务器单机版:3.4.0
  • IEWebDriverServer。exe:3.4.0
  • Java:1.8.0_131

我们正在尝试在Windows Server 2016虚拟机上运行针对Internet Explorer 11的自动化测试。这些测试可以通过Selenium服务器在VM上对Chrome执行,但在IE中失败。

当运行IE量角器时,能够启动在IE中打开的Selenium服务器。然后在地址栏中用“关于:空白”启动另一个窗口。这将很快关闭,并在控制台窗口中显示以下错误:

[13:57:18] I/launcher - Running 1 instances of WebDriver  
[13:57:18] I/local - Starting selenium standalone server...  
[13:57:19] I/local - Selenium standalone server started at   http://10.X.X.X:61263/wd/hub   
Started    
A Jasmine spec timed out. Resetting the WebDriver Control Flow.    

Failures:  
1) angularjs homepage todo list should add a todo  
  Message:  
    Failed: JavaScript error (WARNING: The server did not provide any stacktrace information)  
    Command duration or timeout: 26 milliseconds  
    Build info: version: '3.4.0', revision: 'unknown', time: 'unknown'  
    System info: host: 'XXXX', ip: '10.X.X.X', os.name: 'Windows Server 2016',  os.arch: 'x86', os.version: '10.0', java.version: '1.8.0_131'  
    Driver info: org.openqa.selenium.ie.InternetExplorerDriver  

来自Web驱动程序的进一步日志发现了一些[访问被拒绝。]问题:

D 2017-06-22 10:43:26:213 BrowserFactory.cpp(248) Starting IE using the IELaunchURL API  
D 2017-06-22 10:43:26:360 BrowserFactory.cpp(202) IE launched successfully with process ID 4612  
D 2017-06-22 10:43:26:360 BrowserFactory.cpp(208) Process with ID 4612 is executing iexplore.exe  
D 2017-06-22 10:43:26:360 BrowserFactory.cpp(375) Using Active Accessibility to find IWebBrowser2 interface  
D 2017-06-22 10:43:27:615 BrowserFactory.cpp(434) Found window handle 000A017A for window with class 'Internet Explorer_Server' belonging to process with id 4612  
D 2017-06-22 10:43:27:636 BrowserFactory.cpp(396) Ignoring zoom setting: 0  
W 2017-06-22 10:43:27:644 BrowserFactory.cpp(664) -2147024891 [Access is denied.]: Call to IHTMLWindow2::get_screen failed  
…  
I 2017-06-22 10:43:28:028 Browser.cpp(130) No child frame focus. Focus is on top-level frame  
W 2017-06-22 10:43:28:040 Script.cpp(494) -2147024891 [Access is denied.]: Unable to execute code, call to IHTMLWindow2::execScript failed  
W 2017-06-22 10:43:28:040 Script.cpp(180) Cannot create anonymous function  
W 2017-06-22 10:43:28:040 response.cc(77) Error response has status code 17 and message 'JavaScript error' message  
…  

IE中显然存在权限问题,但浏览器安全设置的放松并没有产生任何影响。

我所尝试过的:

  1. 将所有区域的“启用保护模式”设置为禁用
  2. 将“允许编写Microsoft web浏览器控件的脚本”设置为已启用
  3. 尝试了许多IEWebDriverServer,包括32位和64位版本
  4. 已尝试IE11 32位和64位
  5. 为IE的32位和64位实例添加了2个注册表项功能(https://github.com/SeleniumHQ/selenium/wiki/InternetExplorerDriver)
  6. 禁用“增强保护模式
  7. 本文中提到的配置:http://elgalu.github.io/2014/run-protractor-against-internet-explorer-vm/

有人成功地在Windows Server 2016上运行IEDriverServer吗?我如何克服这些访问被拒绝的问题?

量角器配置:

exports.config = {

capabilities: {
'browserName': 'internet explorer',
'platform': 'WINDOWS',
'version': '11'
},

seleniumServerJar: '<absolute path to /npm/node_modules/protractor/node_modules/webdriver-manager/selenium/selenium-server-standalone-3.4.0.jar>',

localSeleniumStandaloneOpts : {
    jvmArgs : ["-Dwebdriver.ie.driver.loglevel=DEBUG", "-Dwebdriver.ie.driver.logfile=C:/IEServerlog.log", "-Dwebdriver.ie.driver=<absolute path to /npm/node_modules/protractor/node_modules/webdriver-manager/selenium/IEDriverServer3.4.0.exe>"]
},

specs: ['spec.js']
};

规范js:

describe('angularjs homepage todo list', function() {
  it('should add a todo', function() {
    browser.get('https://angularjs.org');

    element(by.model('todoList.todoText')).sendKeys('write first protractor test');
    element(by.css('[value="add"]')).click();

    var todoList = element.all(by.repeater('todo in todoList.todos'));
    expect(todoList.count()).toEqual(3);
    expect(todoList.get(2).getText()).toEqual('write first protractor test');

    // You wrote your first test, cross it off the list
    todoList.get(2).element(by.css('input')).click();
    var completedAmount = element.all(by.css('.done-true'));
    expect(completedAmount.count()).toEqual(2);
  });
});

共有1个答案

鞠修雅
2023-03-14

我在其他版本的webdriver manager中遇到了这个问题。已决定使用3.4.0

webdriver-manager update --versions.standalone=3.4.0 --ie32 

webdriver manager更新为3.4.0并启动特定的3.4.0

webdriver-manager start --versions.standalone=3.4.0

您应该能够在IE浏览器中运行。

 类似资料:
  • 我在Ubuntu服务器上最近安装的Jenkins上运行自动化项目时遇到了麻烦。我有以下错误: 我已经读到应该更新selenium webdriver gem,但我已经更新了它。也在詹金斯安装了firefox插件,但仍然无法运行。

  • 问题内容: 当我运行WebDriver测试时,它们根本无法工作。到目前为止,我已经完成了以下操作:1)我更新了注册表项,使其包含FEATURE_BFCACHE 2)所有区域的保护模式设置都相同3)禁用了增强保护模式4)我也尝试过在我的计算机上设置IEDriverServer路径 测试在Chrome,Firefox等上正常运行,但是在IE11上运行时,我得到: 我正在使用eclipse用Java编写

  • Appium server检测到设备,但无法发送任何命令,因此未执行任何测试。 我想要的能力 Appium服务器日志 检查更新是否可用 更新可用于新版本1.4.16.1 从https://bitbucket.org/appium/appium.app/downloads/AppiumForWindows_1_4_16_1.zip下载文件 使用命令C:\Program Files(x86)\Appi

  • 我的自动化测试有一些问题。我的EclipseIDE中大约有50个测试用例。所有测试用例都在不同的类中。另外,我还有一个基类,它包含@beforeclass和@afterclass。在@beforeclass中,浏览器打开,URL打开,网站URL打开,然后执行登录过程。然后我的测试用例工作。它们都以@Test注释开始。我使用TestNG套件将它们连接起来。基类:我的基类。java类MyBaseCla

  • 问题内容: 最近,我们开始使用Teamcity进行构建管理,并使用ANT脚本运行selenium junit测试。测试成功运行,并显示为在teamcity控制台上通过。如果我登录到构建代理机器,则在运行测试时,我期望能够看到浏览器窗口打开并且填充和提交字段。我没有看到Firefox浏览器窗口打开,想知道我的测试如何通过。当我在Eclipse中运行相同的测试脚本时,将打开Firefox浏览器窗口,并

  • https://www.seleniumhq.org/download/: Java文件 壁虎 ...我收到以下错误: 这些是我的构建路径中的JAR:Eclipse中的构建路径 我仍然很困惑为什么,因为我只是学习了大量的教程来解释如何实现自动化测试。 我是不是错过了在项目中添加内容? 我们将非常感谢所有的帮助和建议