如何解决如何使用 Capybara 单击零高度元素?
我得到的错误是:element not interactable: element has zero size
我有一个带有文本按钮标签的元素。但是,element.style
有两个属性 0px
height
(和 0px
padding
,如果这很重要)。
我发现的唯一解决方法是与我可以找到的其他一些元素(标记层次结构中的更高)进行交互,然后使用 x
和 y
偏移量单击它按钮。然而,这最终会变得不稳定,因为元素的大小可能会发生变化,并且按钮位于右下角。
我愿意加倍努力并计算正确的坐标,但我也无法弄清楚如何获得元素的宽度。我也愿意只使用一些 javascript 来单击作为最后的手段。理想情况下,我很想知道是否有更简洁优雅的方法来解决这个问题。
谢谢!
解决方法
我认为你可以为这个测试启用 js 并使用一个技巧。
就是这样:
page.execute_script("$('#container img').css('height','10px;')")
find('#container img').click
page.execute_script("$('#container img').css('height','0')")
,
我最终使用 actionbuilder 来解决这个问题,如下所示:
el = find('button',:text => '+ 1').native
actionbuilder = page.driver.browser.action # Use actionbuilder to workaround zero height button
actionbuilder.click(el).perform
我不确定这是否是要走的路,但这似乎有所帮助,并且可能会帮助其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。