[英]How to click on hidden element in 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:量角器中的元素不可見錯誤。
基本情況是,我想將鼠標懸停在一個面板上,然后單擊隱藏元素,因為該元素在懸停在其上之前是不可見的。
有時,有些情況下您有意要單擊隱藏元素。
一種選擇是通過javascript點擊:
var elm = element(by.id("myid"));
browser.executeScript("arguments[0].click();", elm.getWebElement());
另請參閱: WebDriver單擊()vs JavaScript單擊()
另一個, 使元素可見並單擊它。 現在,這取決於元素的隱藏方式 - 使用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();
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.