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

Docker Selenium-测试通过了Chrome,但没有通过Firefox

辛承
2023-03-14

我有一个带有两个Selenium服务的Docker撰写文件:

  selenium-chrome:
    container_name: selenium-chrome
    image: selenium/standalone-chrome
    ports:
      - "4444:4444"
    networks:
      - teamcity-network

  selenium-firefox:
    container_name: selenium-firefox
    image: selenium/standalone-firefox
    ports:
      - "4448:4448"
    networks:
      - teamcity-network

我有另一个服务设置与量角器安装。

这是我的量角器配置文件:

exports.config = {
  onPrepare: function () {
    var jasmineReporters = require('jasmine-reporters');
    jasmine.getEnv().addReporter(new jasmineReporters.TeamCityReporter());
  },
  framework: 'jasmine2',

  specs: [
    '/project/tests/**/*-spec.js'
  ],

  capabilities: {},

  multiCapabilities: [
    {
      'browserName': 'chrome',
      'shardTestFiles': true,
      'maxInstances': 2
    }
  ],

  'baseUrl': 'http://build-tool:8080',

  seleniumAddress: 'http://selenium:4444/wd/hub'
};

这可以成功运行,但如果我将浏览器名称更改为firefox,将selenium地址更改为firefox容器,测试就会失败。

1) 选中时,includes coachcard指令应显示coachcard类型面板

消息:失败:在页面上找不到角度http://build-tool:8080/book/tests/directives/includes-教练卡/包括教练卡测试。html:retr ies正在查找角度超出的堆栈:错误:在页面上找不到角度http://build-tool:8080/book/tests/directives/includes-教练卡/包括教练卡测试。html:在/usr/lib/node\u modules/gradutor/build/browser处搜索角度超出。js:519:23在ManagedPromise。在TaskQueue中调用callback_(/usr/lib/node\u modules/gradutor/node\u modules/selenium-webdriver/lib/promise.js:1379:14)。在TaskQueue中执行(/usr/lib/node\u modules/gradutor/node\u modules/selenium-webdriver/lib/promise.js:2913:14)。executeNext_(/usr/lib/node_modules/gradutor/node_modules/selenium webdriver/lib/promise.js:2896:21)at/usr/lib/node_modules/gradutor/node_modules/selenium webdriver/lib/promise。js:2775:27 at/usr/lib/node\u modules/gradutor/node\u modules/selenium-webdriver/lib/promise。js:639:7 at过程_tickCallback(node.js:369:9)来自:任务:在对象的控制流中运行它(“选中时应显示coachcard类型面板”)。(/usr/lib/node\u modules/gradutor/node\u modules/jasminewd2/index.js:79:14)来自异步测试:套件错误。(/project/tests/directions/includes-coachcard/includes-coachcard-test-spec.js:7:5)at对象。(/project/tests/directions/includes-coachcard/includes-coachcard-test-spec.js:4:1)at模块_在对象处编译(module.js:409:26)。模块_扩展。。模块处的js(模块js:416:10)。在函数处加载(模块js:343:32)。模块_负载(模块js:300:12)

有人知道为什么这对Chrome有效,但对火狐无效吗?

我的测试是这样的:

var TEST_PAGE = "/tests/directives/includes-coachcard/includes-coachcard-test.html";

describe("includes coachcard directive", function () {
    it("should show coachcard types panel when checked", function () {
        browser.get(TEST_PAGE);
        var panel = element(by.css('.test1 div.panel'));
        var checkbox = element(by.css('.test1 div.Checkbox-button'));

        expect(panel.isDisplayed()).not.toBeTruthy();
        checkbox.click();
        expect(panel.isDisplayed()).toBeTruthy();
    });
});

注意-我可以通过HTTP浏览到测试文件,它加载良好-没有角度错误。

共有2个答案

郜光明
2023-03-14

我发现我做错了什么。我正在运行的测试有一个HTML导入语句。

<link rel="import" href="thirdPartyScripts.html" />

这在我的本地Firefox上并没有失败,因为我必须设置:

dom.webcomponents.enabled=true

在我的偏好中。我更改了代码,使其不再使用导入,但如果需要,可以在Selenium实例上设置此首选项。

Chrome支持此功能,但Firefox(默认情况下)不支持-http://caniuse.com/#feat=imports

颜光临
2023-03-14

听起来像是时间问题,请参阅本文档以了解量角器超时的参考信息。

如果它在Chrome上运行没有问题,那么最可能的问题将通过链接文档中的建议得到解决:更新配置文件中的getPageTimeout。等待在应用程序中加载角度的默认时间是10秒。

 类似资料:
  • 我在所有集成测试中不断收到异常,而单元测试运行良好。所有异常如下所示: 我正在使用Jupiter进行测试。我的观点的上述例外指向data.sql脚本,我必须填充一些数据。对我来说,语法似乎没问题,也运行良好,这意味着如果使用邮递员进行测试,会生成记录: 还考虑了Spring Boot可能存在的配置问题,所以我在gradle中添加了jdbc-starter依赖项。但它似乎仍然失败。 以下是测试的一部

  • 我有一个简单的功能,我想测试,但明显的结果是没有发生。。。 我的函数是如何工作的(实际上它确实工作,只是没有正确测试) 我将字符串传递到函数中 当我运行所示的测试时,我收到错误: 预期默认值等于hare失败 我的组件 我的测试

  • 泰森已经为贝布莱德世界锦标赛做好了准备。锦标赛以团队为基础,每个团队可以有N名成员。一个玩家只能与一个玩家战斗。G-Revolution团队非常兴奋,因为他们已经进行了大量练习。G-Revolution团队的负责人肯尼创建了一个数据库,在那里他有关于其他团队成员和自己团队成员力量的数据。比赛将在一段时间后开始,肯尼在比赛前搬到自助餐厅吃点心。 G革命团队将在一段时间内战斗,当有人从自助餐厅绑架肯尼

  • 我正在为一个带有多个STS模块的spring boot项目运行maven安装。 Maven日志: 最后,展示了所有模块的成功构建。难道它不应该一发现失败就停止制造战争吗?

  • 我正在使用Angular2 final(2.0.2)和angular cli。我正在尝试将其设置为使用PhantomJS运行单元测试。使用Chrome和karma Chrome launcher运行规范-所有测试都通过。在Phantomjs预构建2.1中运行相同的功能。13和karma phantomjs launcher 1.0。2次测试失败。 我添加了phantomjs启动器到插件数组中kar

  • 首先请原谅我可能的无知,专业的做事方式对我来说很新鲜,如果有什么我没有提到的,请告诉我,我会尽力给你你需要的信息。。。 所以我试图用maven在Eclipse中构建我的webapp,我有一个测试套件 这很好,当我右键单击并以Junit test运行测试时,所有测试都通过了。 当我以Maven build的形式运行它,并以打包一系列测试为目标时,失败了??? 我的maven surefire插件配置