Angularjs 量角器测试在铬中工作,但不在IE11中

Angularjs 量角器测试在铬中工作,但不在IE11中,angularjs,internet-explorer,protractor,Angularjs,Internet Explorer,Protractor,我正试图在不同的浏览器上做一个简单的量角器测试,但我遇到的是,它在IE上失败了,而在Chrome上却没有 我正在测试angularjs应用程序,它是一个简单的计算器应用程序 测试包括以下代码: describe('Protractor Demo App', function() { it('should add 2 numbers', function() { var i,j; var w=10000; var t=100; i=Math.floor((Mat

我正试图在不同的浏览器上做一个简单的量角器测试,但我遇到的是,它在IE上失败了,而在Chrome上却没有

我正在测试angularjs应用程序,它是一个简单的计算器应用程序

测试包括以下代码:

describe('Protractor Demo App', function() {
  it('should add 2 numbers', function() {
    var i,j;
    var w=10000;
    var t=100;
    i=Math.floor((Math.random() * t) + 1);
    j=Math.floor((Math.random() * t) + 1);

    browser.sleep(w);
    browser.get('http://juliemr.github.io/protractor-demo/');
        browser.waitForAngular();

    element(by.model('first')).sendKeys(i);
    element(by.model('second')).sendKeys(j);
    element(by.id('gobutton')).click();

    console.log('Sent: ' + i.toString() + ' + ' + j.toString());
    var x = element.all(by.repeater('result in memory').column('value')).get(0).getText();
    expect(x).toEqual((i+j).toString());
我的配置文件是:

// conf.js
exports.config = {
        capabilities: {
        'browserName': 'internet explorer',
        'platform': 'ANY',
        'version': '11',
        'nativeEvents': false,
        'unexpectedAlertBehaviour': 'accept',
        'ignoreProtectedModeSettings': true,
        'enablePersistentHover': true,
        'disable-popup-blocking': true
    },
  framework: 'jasmine',
  seleniumAddress: 'http://localhost:4444/wd/hub',
  specs: ['spec.js']
}
当我为Chrome设置最后一个选项时(即,对功能部分进行注释),测试以魅力的形式运行,测试也可以。我看到chrome窗口弹出,脚本输入数字,点击按钮,结果出现,窗口关闭

当我设置IE(取消对功能部分的注释)并启动脚本时,会弹出一个IE窗口,其中包含文本“这是WebDriver服务器的初始起始页。”,并在那里停留一段时间。之后,我看到脚本输入了数字,它立即关闭,在日志上进行了失败的测试,并显示以下消息:

  Message:
    Failed: Index out of bound. Trying to access element at index: 0, but there are only 0 elements that match locator by.repeater("result in memory").column("value")
  Stack:
    NoSuchElementError: Index out of bound. Trying to access element at index: 0, but there are only 0 elements that match locator by.repeater("result in memory").column("value")
似乎“Go”按钮没有被点击,但我不明白为什么。 有人能帮我理解发生了什么事吗


谢谢大家!

奇怪的是,这在Chrome中起作用。起初我认为这也是IE的问题;但是,上面的代码有一个问题。在中,正确使用了列方法。在量角器位置上显示了

看起来可疑的代码行:

var x = element.all(by.repeater('result in memory').column('value')).get(0).getText();
这可能是:

var x = element.all(by.repeater('result in memory').column('result .value')).get(0).getText();

此示例的代码与。我也会检查一下。

奇怪的是,它在Chrome中工作。起初我认为这也是IE的问题;但是,上面的代码有一个问题。在中,正确使用了列方法。在量角器位置上显示了

看起来可疑的代码行:

var x = element.all(by.repeater('result in memory').column('value')).get(0).getText();
这可能是:

var x = element.all(by.repeater('result in memory').column('result .value')).get(0).getText();

此示例的代码与。我也会检查一下。

什么是
。列('value')
?在检索表列表之前,我还没有在量角器中看到这种语法,为了得到表的一个特定值,使用列。。。我在这里找到了:哦,很有趣,谢谢你。那么这个定位器在Chrome中也能工作?如果您尝试等待至少一个元素存在,类似这样的情况会怎么样?我知道量角器和angular应该是同步的,但可能会有帮助。您如何使用selenium服务器启动IEDriver?你使用的是什么版本?我相信我用webdriver manager更新了它——也就是说,我相信它是在我启动测试时由量角器启动的(虽然我可能大错特错,因为我不是100%理解驱动程序的调用方式:/Version是3.4.0。但是,如果我错了,请纠正我,但是如果浏览器确实启动,并且输入字段正确填充,那么至少在某种程度上不应该证明驱动程序正在工作吗?
.column('value')是什么
?在我检索表列表之前,我还没有在量角器中看到过这种语法,为了得到表的一个特定值,使用了列……我在这里找到了它:哦,很有趣,谢谢。所以这个定位器在Chrome中也可以工作?如果你尝试等待至少一个元素存在,类似的东西会怎么样?我知道otractor和angular应该是同步的,但可能会有帮助。你是如何用selenium服务器启动你的IEDriver的?你使用的是什么版本?我相信我用webdriver manager更新了它--ie,我相信在启动测试时它是由量角器启动的(虽然我可能大错特错,因为我不是100%理解驱动程序的调用方式:/Version是3.4.0。但是,如果我错了,请纠正我,但是如果浏览器确实启动,并且输入字段正确填充,这不应该证明驱动程序至少在某种程度上工作了吗?您好,您提出的更改导致了行为没有改变:Chrome测试通过,IE失败。此外,我在你提到的量角器烹饪书上尝试了代码,其中一个在IE和Chrome上也失败了。似乎一切都指向IEDriver,还是我?嗨,你提出的改变没有改变行为:Chrome测试通过,IE失败。此外,我尝试你提到的量角器食谱上的代码,其中一个在IE和Chrome上也失败了。似乎所有的东西都指向IEDriver,还是我?