我有一个 ng-click
元素,它没有高度和宽度,但仍然可以使用 UI 单击,因为它内部有一个绝对定位的 :before
元素(一个图标)。如果我尝试单击 Protractor 中的元素,它会说该元素不可见,因为它没有高度或宽度。我也找不到任何方法在 Protractor 中选择伪元素。使用 browser.actions 也不容易,因为 psuedo 元素位于其父元素之外。
最佳答案
您的观察是正确的。如果元素不可见,Protractor/selenium/WebDriverJs click()
将不起作用。这意味着如果这两个都是 false - height>0
width>0
则 click()
不起作用。这里的替代方法是执行 javascript click()
这里有一篇很棒的帖子 - Clicking an element using javascript vs actions vs webdriver?
你可以做这样的事情
var elm = element(by.css("#myid"));
browser.executeScript("arguments[0].click();", elm);
关于javascript - 是否可以在 Protractor 中单击绝对定位的伪元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42013085/