javascript - Protractor 测试不适用于 IE,但适用于 FF/Chrome/Safari

标签 javascript internet-explorer selenium jasmine protractor

我目前正在处理针对 IE 的 Protractor 测试的问题。

我正在使用 Protractor + Jasmine + Node.js

我正在测试的页面部分如下:

<h2 collapser="" class="title text-center text-uppercase active">Tech Specs <i class="plus-icon"></i></h2>

我进行了以下测试:

it('User should be able to see module 11 Tech Specs collapsing and uncolapsing', function () {
    basePage.techSpecCollapser.click();
    browser.sleep(1000);
    expect(basePage.techSpecContainer.isDisplayed()).toBeTruthy();

});

这是控制台输出:

 Landing page module verification -->
  User should be able to see module 11 Tech Specs collapsing and uncollapsing - fail


  1) New Landing page module verification --> User should be able to see module 11 Tech Specs collapsing and uncolapsing
  at 15.446s [Thu, 28 May 2015 14:23:08 GMT]
   Message:
     Expected false to be truthy.
   Stacktrace:
     Error: Failed expectation
    at [object Object].<anonymous> (/Users/test/Documents/Dev/test/sandBox/specs/landing_page_spec.js:44:58)

Finished in 15.448 seconds
1 test, 1 assertion, 1 failure

通过观察测试运行,我发现网页的一部分没有显示。我尝试过:

  • 强制滚动到页面的该部分:不起作用。
  • 聚焦页面的该部分:不起作用。

有人遇到同样的问题吗?可以让它工作,而且测试非常简单!

最佳答案

您可以尝试通过多种方法来解决该问题:

  • 在运行测试之前最大化浏览器窗口。将其添加到 onPrepare() 中:

    browser.driver.manage().window().maximize();
    
  • 删除不可靠的 browser.sleep() 并显式等待元素变得可见 visibilityOf expected condition :

    var EC = protractor.ExpectedConditions;
    basePage.techSpecCollapser.click();
    browser.wait(EC.visibilityOf(basePage.techSpecContainer), 10000);
    
  • 移动到元素:

    browser.executeScript("arguments[0].scrollIntoView();", basePage.techSpecContainer.getWebElement());
    

关于javascript - Protractor 测试不适用于 IE,但适用于 FF/Chrome/Safari,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30509744/

相关文章:

javascript - 模板文字适用于除 IE 之外的其他浏览器

internet-explorer - jQuery 对话框打开导致 IE 中页面不断变长

selenium - 如何在编写 Selenium 测试时将 UI 对象标识符与测试脚本解耦

java - 元素在某处不可点击,因为另一个元素遮住了它

javascript - React 在第一个方法触发后不改变状态

javascript - 如何在字符串 javascript 中添加 json stringify?

javascript - 无法使用 JavaScript 在 IE 上打印 iframe,而是打印父页面

javascript - Node-Red 发送二进制文件

javascript - Javascript播放YouTube API(+排队视频)

java - 无法使用最新的 selenium 驱动程序 + Chrome 驱动程序启动带有扩展名的 URL