亲爱的stackoverflowers。
我们在项目中使用Selenide框架为UI编写自动化测试。 我们最近切换到了Material-UI,在涉及简单的checkbox时遇到了技术问题。 我正在尝试选中复选框。
SelenideElement rememberMeCheckBox = $(By.cssSelector("input[type=\"checkbox\"]"));
rememberMeCheckBox.setSelected(isSelected);
但在这样做时我得到了一个例外:
Element should be visible {input[type="checkbox"]}
Element: '<input type="checkbox" value="on" displayed:false></input>'
事实上当我检查真正的DOM时,它包含opacity: 0
:
当我通过强制设置不透明度时,我的自动化测试效果很好。 如何处理?
答案 0 :(得分:3)
这不是Selenide问题,而是常见的Selenium问题。 Selenium将“不透明度:0”的元素定义为不可见。 见How to force Selenium WebDriver to click on element which is not currently visible?
启用此复选框的一种简单方法是单击其父元素:
$("input[type=\"checkbox\"]").parent().click();
至少它对我有用。