Selenide测试无法与Material的复选框交互 [英] Selenide test fails to interact with Material`s checkbox

查看:112
本文介绍了Selenide测试无法与Material的复选框交互的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尊敬的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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆