javascript - 如何点击 Protractor 中的隐藏元素?

标签 javascript css angularjs selenium-webdriver protractor

我有一个只有当我将鼠标悬停在它上面时才可见的元素。

我编写了以下代码以将鼠标悬停在面板上,以便元素可见。

ptor.actions().
            mouseMove(ptor.findElement(protractor.By.xpath('//*[@id="productapp"]/div/div/div[2]/div/div/div/div[2]/div/div/div/div[4]/table/thead/tr/th[2]'))).
            perform();
        ptor.element.all(by.tagName('i')).then(function(elm){
            elm[0].click();
        });

现在我试图点击它,但它说 - ElementNotVisibleError:元素不可见 Protractor 错误。

基本场景是,我想将鼠标悬停在一个面板上,然后单击隐藏的元素,因为该元素在悬停之前是不可见的。

最佳答案

有时,有些情况下您会故意点击隐藏的元素。


一种选择是通过javascript点击:

var elm = element(by.id("myid"));
browser.executeScript("arguments[0].click();", elm.getWebElement());

另见:WebDriver click() vs JavaScript click()


另一个,使元素可见并单击它。现在,这取决于元素的隐藏方式 - 使用 style.blockstyle.visibility 或使用 ng-hide 等。示例我们将元素的 visibility 设置为 visible 并将 display 设置为 block 的解决方案:

var elm = element(by.id("myid"));
browser.executeScript(function (arguments) {
    arguments[0].style.visibility = 'visible'; 
    arguments[0].style.display = 'block';
}, elm.getWebElement());

关于javascript - 如何点击 Protractor 中的隐藏元素?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22265040/

相关文章:

html - WhatsApp Web 喜欢 Content Editable Div

css - 在运行时禁用 CTRL/Wheel 缩放效果

javascript - 希望使用 angularjs 创建类似功能的 gmail 附件预览

javascript - JQuery UI slider 'slide' 函数未设置 angularJS 值

javascript - 了解回调 : no argument was passed

javascript - 单击时展开和折叠 TR 标签 - 文件夹树结构

javascript - 如何使用 jQuery 显示 "busy"指标?

javascript - JSON 数据发布到 Android/iOS 版 Titanium 中的服务器

php - 如何获取 gulp 构建版本以使用 PHP 自动刷新 css 缓存

javascript - 从 Controller 访问模型。 Angular .js