代码之家  ›  专栏  ›  技术社区  ›  k.vincent

量角器失败:元素不可交互

  •  1
  • k.vincent  · 技术社区  · 7 年前

    我正在运行一个角度7.x应用程序的E2E测试。测试在我的本地机器上直接进行。但是,当我在repo(gitlab)上推送它时,管道失败并抛出以下错误:

    用户配置文件-检查和更改配置文件 -失败:元素不可交互 (会话信息:chrome=71.0.3578.80) (驱动程序信息:chromedriver=2.45.615279(12b89733300bd268cff3b78fc76cb8f3a7cc44e5),平台=linux 4.14.74-coreos x86_64)

    测试用例:

    it('USER PROFILE - Check and change PROFILE', () => {
    
        page.navigateTo();
    
        browser.sleep(1000);
        expect(page.getProfileEditTagName()).toMatch('app-edit-profile');
    
        expect(element(by.className('logged-as')).getText()).toBe( testEmail );
    
    
        browser.actions().mouseMove( element.all( by.id('editIcon-salutation') ).get(0)).click().perform().then(function () {
            browser.sleep(4000);
    
            element( by.className('mat-select-arrow') ).click().then(function () {
    
                browser.actions().mouseMove( element.all(by.className('option-value mat-option')).get(0)).click().perform();
                browser.sleep(1000);
                browser.actions().mouseMove( element.all( by.id('saveButton-salutation') ).get(0)).click().perform();
                browser.sleep(1000);
    
            });
        });
    
    });
    

    navigateTo() 只是一种方法 简介.po.ts :

    navigateTo() {
        browser.get('/profileComponentUrl');
    }
    

    让我困惑的是,在哪里我甚至无法定位错误或什么地方出了问题,是它在本地运行良好。但一旦我推到repo,它就会在测试用例中完全失败。有什么提示吗?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Snehalkumar Mahale    7 年前

    元素不可交互的原因可能是-正在对隐藏或隐藏的元素执行操作。

    你可以试试- 1。在by.classname('mat-select-arrow')之后添加sleep。click(),因为我可以看到您没有在那里添加任何等待。 2。尝试检查您是否在本地和jenkins机器上以相同的屏幕分辨率运行测试。(这可能是元素模糊的原因)