量角器在 Firefox 和 IE 浏览器中失败

Posted

技术标签:

【中文标题】量角器在 Firefox 和 IE 浏览器中失败【英文标题】:Protractor fails in Firefox and IE browsers 【发布时间】:2017-01-10 02:30:04 【问题描述】:

我很难让量角器在 Firefox 中运行测试

以下是一个示例测试用例。它可以在 Chrome 中测试 - 但在 Firefox 和 IE 浏览器中失败。

测试文件

<html>
    <head>
        <title>automation test</title>
        <style>
            #tst
                width: 200px;
                height: 200px;
                border: 1px solid;
            
        </style>        
    </head>
    <body>        
        <div id="tst"></div>
        <button id="clickme">Click me</button>        
        <script>

            document.getElementById('clickme').addEventListener('click', function(e)
                document.getElementById('tst').style.backgroundColor = 'red';
            );

        </script>
    </body>
</html>

规格文件(indexspecs.js)

describe('sample test', function()

    it('change bgColor to red when click the button', function()
        browser.driver.get("http://localhost/test/index.html");
        var btn = browser.driver.findElement(by.id('clickme'));
        var clRed = "rgba(255, 0, 0, 1)";
        btn.click();

        expect(browser.driver.findElement(by.id('tst')).getCssValue('background-color')).toEqual(clRed);
    );
);

量角器配置文件

exports.config = 

    seleniumAddress: 'http://localhost:4444/wd/hub',

    specs: ['indexspecs.js'],

    jasmineNodeOpts: 
        showColors: true
    ,

    capabilities: 
//        'browserName': 'internet explorer'
        'browserName': 'firefox'
    
;

量角器版本 - 2.0.0Firefox 版本 - 45IE 版本 - 11

当设置为 Firefox 时,浏览器会启动 - 但不会获取 url 来运行测试。

【问题讨论】:

使用 protractor 的 Firefox 版本出现了一些中断,你看过这里吗:***.com/questions/37693106/…? 【参考方案1】:

您的问题过于笼统,无法确定根本原因。但我会尽量回答所有可能导致您遇到问题的常见问题

    更新到 Protractor 的新版本(使用npm update protractor) - 您使用的是相当旧的 2.0.0(protractor --version 在更新后检查它)。我正在使用 3.3.0。还有更多最新版本 - Protractor 我刚试过你的规格,它在 FF-45 上运行良好

    来到IE,我不确定你是否已经有IE驱动,如果没有运行下面的命令

    webdriver-manager update --ie
    

您的脚本可能会在 IE 中失败,因为它会发出“Active X 方法将被阻止”的警告,并且您可能必须在运行之前在 IE 设置中设置忽略选项

【讨论】:

【参考方案2】:

您可以尝试在本地启动独立的 Selenium 服务器。你可以看这里;

https://github.com/angular/protractor/blob/master/docs/referenceConf.js

你的配置文件应该是这样的;

exports.config = 

    seleniumServerJar: 'node_modules/protractor/selenium/selenium-server...',

    specs: ['indexspecs.js'],

    jasmineNodeOpts: 
        showColors: true
        defaultTimeoutInterval:30000
    ,

    capabilities: 
        //'browserName': 'internet explorer'
        'browserName': 'firefox'
    
;

你可以从这里下载jar文件

http://www.seleniumhq.org/download/

【讨论】:

以上是关于量角器在 Firefox 和 IE 浏览器中失败的主要内容,如果未能解决你的问题,请参考以下文章

为啥客户端在 IE 中访问网络时集成 Windows 身份验证失败?

在 Firefox 上开发的 Javascript 在 IE 上失败的典型原因是啥? [关闭]

论“浏览器”-20181005

动画在 IE 中失败

量角器点击在 IE 中不起作用,但在 chrome 中起作用

firefox浏览器兼容ie