我正在使用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
但收到了错误消息。
无法找到可见的css&#34; .btn&#34; with text&#34; TextOnButton&#34;
我试过了:
within('.modal’) do
page.execute_script 'window.scrollBy(0,100)'
end
然后他滚动主窗口而不是模态窗口。
答案 0 :(得分:1)
假设您的HTML代码段不正确且按钮元素实际包含在模态中(如文字说明中所示),那么您可以尝试类似
的内容within('.modal') do
btn = find(:button, 'TextOnButton', visible: :all)
execute_script('arguments[0].scrollIntoView(true)', btn)
btn.click
end
答案 1 :(得分:1)
这项工作:
printf "%s\n"
答案 2 :(得分:0)
我知道你已经在模态上执行代码,但只是想知道你是否先使用driver.switchTo()。window(句柄)来切换到那个模态?