我正在使用 Selenium WebDriver、RSpec 和 Capybara 进行测试。
我让程序在模式窗口中成功填写了一些字段。现在我想单击此模式窗口底部的按钮。乍一看,我看不到这个按钮,所以 Capybara 需要在模态窗口中向下滚动。
网页的两个相关代码片段:
<div class = “modal”> </div>
<button class=”btn …..”> TextOnButton ::after </button>
我试过:
within('.modal') do
find('.btn', text: ‘TextOnButton').scrollIntoView(true)
end
但收到错误信息。
Unable to find visible css ".btn" with text "TextOnButton"
我试过:
within('.modal’) do
page.execute_script 'window.scrollBy(0,100)'
end
但随后他滚动主窗口而不是模态窗口。
最佳答案
假设您的 HTML 片段不正确并且按钮元素实际上包含在模态中(如在您的文本描述中),那么您可以尝试类似的方法
within('.modal') do
btn = find(:button, 'TextOnButton', visible: :all)
execute_script('arguments[0].scrollIntoView(true)', btn)
btn.click
end
关于selenium - 如何在 Capybara 中滚动模态窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47339755/