ruby-on-rails - 如何使硒网络驱动程序单击反应聚光灯内的按钮(React Joyride)?
问题描述
我使用 ReactJoyride 在我的应用程序中添加了一个受控游览。在特定步骤中,只有单击“正在进行”选项卡/按钮时,游览才会进行(见图)。
这个“正在进行”按钮在聚光灯下。
我已经手动测试过了,它工作得很好。但是,在使用 Selenium 进行测试时,我似乎找不到单击此按钮的方法。
我收到以下错误:
它说 react-joyride__overlay 将收到点击。但是 react-joyride__spotlight 是 react-joyride__overlay 的子元素,我已经启用了spotlightClicks。
- 注释的代码行是我测试过的其他方式。他们都失败了。
如果您能指出我正确的方向,我将不胜感激!
解决方案
这里的问题是,您想要的元素被其他元素覆盖,所以这个其他元素隐藏了您的元素。您所要做的就是检查此覆盖是永久的还是临时的。如果它是临时的,您必须编写代码等到另一个元素消失,如果它是永久的,那么您必须在另一个元素的顶部发出点击,以便您想要的元素收到点击。
让我假设你的覆盖是永久性的,所以试试这个代码
find(xpath: "//div[@class='react-joyride__overlay']").click
推荐阅读
- html - 如何制作最细的字体
- python - 使用具有相同行值的其他列计算 Pandas 中列的模式
- ant - 如果另一个属性以特定字符开头,如何在 ant 中设置一个属性?
- ios - 无法更改用户点击 swift iOS 上的多个按钮颜色?
- jenkins - 在 Jenkins Job 中传递参数
- java - 如何在 Spring Boot 中从属性文件中读取限定符?
- filter - 如何在 odoo 10 的搜索视图中应用 Many2many 字段过滤器
- laravel - 如何在现有查询中传递 Auth::user()?
- semantic-ui - 使用语义-ui-react 在单击菜单项时显示动态内容
- android - 将图像从文件夹加载到 ImageView