我有一个元素,只有当我将鼠标悬停在它上面时才可见。
我已经编写了以下代码来覆盖面板,以便元素可见。
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:元素不可见
量角器中的错误。
基本情况是,我想将鼠标悬停在一个面板上,然后单击隐藏元素,因为该元素在悬停之前是不可见的。
有时候,有些情况下你有意想点击一个隐藏的元素。
一种选择是点击 通过javascript:
var elm = element(by.id("myid"));
browser.executeScript("arguments[0].click();", elm.getWebElement());
也可以看看: WebDriver click()vs JavaScript click()
另一个,到 使元素可见 然后单击它。现在,这取决于元素的隐藏方式 - 用a style.block
要么 style.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());
以下代码为我工作。
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.css('i.ng-scope.tea-ic-sorting')).then(function(elm){
elm[0].click();
});