I have an element which is visible only when I hover over it.
I've written following code to hove over the panel so that the element is visible.
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();
});
Now I tried to click on it, but it says - ElementNotVisibleError: element not visible error in protractor.
Basic scenario is, I want to hover over a panel and then click on the hidden element, because the element is not visible until it is hovered over.
Sometimes, there are cases when you intentionally want to click a hidden element.
One option would be to click via javascript:
See also: WebDriver click() vs JavaScript click()
Another, to make an element visible and click it. Now, this depends on how the element was hidden - with a
style.block
orstyle.visibility
or with theng-hide
etc. Sample solution where we set the element'svisibility
tovisible
and thedisplay
toblock
:Following code worked for me.