将一个元素悬停,然后单击“不工作”

时间:2014-09-24 16:03:27

标签: javascript css angularjs protractor

此问题之前已被问过,但我对此有更具体的看法。我有一个<article>元素,默认情况下样式为visibility:hidden。我使用伪选择器&:hover将可见性更改为“可见”。

在我的量角器测试中,我将鼠标移动到文章上,就好像要悬停一样,我断言可见性实际上是可见的,然后我点击文章。

文章似乎永远不会收到点击,我无法为项目的功能编写后续测试。

//用于测试悬停是否有效的代码(这是成功的)

        it('the button to launch the action menu should become visible when it is hovered over', function () {
            ptor.actions()
                .mouseMove(element.all(by.css('article.asset-action')).get(0))
                .perform();

            var art = element.all(by.css('article.asset-action')).get(0);
            art.getCssValue('visibility')
                .then(function(val) {
                    console.log('visibility value is: ' + val);
                    expect(val).toBe('visible');
                });
        });

//这不成功,因为点击似乎不会触发

       it('clicking the article that brings up the asset action menu should also add a cover div to the DOM', function () {
            ptor.actions()
                .mouseMove(element.all(by.css('article.asset-action')).get(0))
                .perform();

            element.all(by.css('article.asset-action')).get(0)
                .then(function(art) {
                    art.click();
                });

            element(by.css('div.asset-action-pop-cover'))
                .then(function(cover) {
                    expect(browser.isElementPresent(cover)).toBe(true);
                });
        });

我注意到的另一件事是,如果我使用ptor.sleep暂停测试或在代码中设置断点并切换到Chrome,我可以使用鼠标与其他几个元素进行交互,但我无法点击相关项目鼠标,即使它是可见的。当我正常运行应用程序时,情况并非如此。

0 个答案:

没有答案