首页 > 解决方案 > 如何使硒网络驱动程序单击反应聚光灯内的按钮(React Joyride)?

问题描述

我使用 ReactJoyride 在我的应用程序中添加了一个受控游览。在特定步骤中,只有单击“正在进行”选项卡/按钮时,游览才会进行(见图)。

在此处输入图像描述

这个“正在进行”按钮在聚光灯下。

我已经手动测试过了,它工作得很好。但是,在使用 Selenium 进行测试时,我似乎找不到单击此按钮的方法。

我收到以下错误:

在此处输入图像描述

它说 react-joyride__overlay 将收到点击。但是 react-joyride__spotlight 是 react-joyride__overlay 的子元素,我已经启用了spotlightClicks。

我正在使用的当前代码是这样的:(test.rb) 在此处输入图像描述

如果您能指出我正确的方向,我将不胜感激!

标签: ruby-on-railsreactjsrubyseleniumcapybara

解决方案


这里的问题是,您想要的元素被其他元素覆盖,所以这个其他元素隐藏了您的元素。您所要做的就是检查此覆盖是永久的还是临时的。如果它是临时的,您必须编写代码等到另一个元素消失,如果它是永久的,那么您必须在另一个元素的顶部发出点击,以便您想要的元素收到点击。

让我假设你的覆盖是永久性的,所以试试这个代码

find(xpath: "//div[@class='react-joyride__overlay']").click

推荐阅读