Selenide测试无法与Material的复选框交互 [英] Selenide test fails to interact with Material`s checkbox
问题描述
尊敬的stackoverflowers
Dear stackoverflowers.
我们在项目中使用Selenide框架来编写UI自动化测试. 我们最近切换到Material-UI,并遇到了简单的复选框的技术问题一个>. 我正在尝试选择复选框.
We are using Selenide framework in our project to write automation tests for UI. We switched to Material-UI recently and faced with technical problems when it comes to simple checkbox. I am trying to select checkbox.
SelenideElement rememberMeCheckBox = $(By.cssSelector("input[type=\"checkbox\"]"));
rememberMeCheckBox.setSelected(isSelected);
但是这样做的时候我得到了一个例外:
But while doing that I get an exception:
Element should be visible {input[type="checkbox"]}
Element: '<input type="checkbox" value="on" displayed:false></input>'
实际上,当我检查真实的DOM时,它包含opacity: 0
:
And indeed when I check the real DOM it contains opacity: 0
:
当我通过强制设置不透明度时,我的自动化测试效果很好. 如何处理?
When I set the opacity by force my automation tests works well. How to deal with that ?
推荐答案
这不是Selenide问题,而是常见的Selenium问题. 硒将不透明度:0"的元素定义为不可见. 参见如何强制Selenium WebDriver单击当前不可见的元素?
It's not a Selenide problem, but a common Selenium problem. Selenium defines elements with "opacity: 0" as invisible. See How to force Selenium WebDriver to click on element which is not currently visible?
启用此复选框的一种简单方法是单击其父元素:
One simple way to enable this checkbox is to click its parent element:
$("input[type=\"checkbox\"]").parent().click();
至少对我有用.
这篇关于Selenide测试无法与Material的复选框交互的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!