【问题标题】:Is it possible to click an absolutely positioned psuedo element in Protractor是否可以在量角器中单击绝对定位的伪元素
【发布时间】:2017-02-02 21:57:57
【问题描述】:
我有一个 ng-click 元素,它没有宽度高度,但仍然可以使用 UI 进行点击,因为它内部有一个绝对定位的 :before 元素(一个图标)。如果我尝试单击量角器中的元素,它会说该元素不可见,因为它没有高度或宽度。我也找不到在 Protractor 中选择伪元素的任何方法。使用browser.actions 也不容易,因为伪元素在其父元素之外。
【问题讨论】:
标签:
javascript
css
angularjs
protractor
【解决方案1】:
你的观察是正确的。如果元素不可见,Protractor/selenium/WebDriverJs click() 将不起作用。这意味着如果这两个都是错误的 - 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);