gpt4 book ai didi

selenium-webdriver - 使用 Capybara 和 Selenium 将按钮自动滚动到 View 中

转载 作者:行者123 更新时间:2023-12-04 02:40:50 24 4
gpt4 key购买 nike

上个月的某个时候(2013 年 6 月),我们的几个 Capybara 测试开始失败,主要是因为他们试图点击的按钮不在 View 中。理想情况下,我想弄清楚发生了什么变化。我们目前使用的是 selenium-webdriver 2.33,但我已经尝试回到 2.29,但它仍然无法正常工作。我们目前只针对 Firefox,这可能是由于 Firefox 的更新版本。

除此之外,我不知道如何将按钮滚动到 View 中。根据我收集的信息,我可以使用 scrollIntoView 但不确定如何在 Capybara 步骤中调用它。我尝试了以下变化:

 Capybara.current_session.driver.execute_script("arguments[0].scrollIntoView(true;)", find_button(button).native)

但是没有运气,因为 find_button 本身不起作用。

注意:我们是根据按钮的文本进行选择的。基于 ID 进行选择是可能的,但需要对我们的 UI 测试进行大量更改,因此我们希望避免它。

最佳答案

我通常有一个模块 JavascriptDriver我用来在测试中包含 Selenium 功能,并在那里定义了一个辅助方法:

module JavascriptDriver
# other code that prepares capybara to work with selenium

def scroll_to(element)
script = <<-JS
arguments[0].scrollIntoView(true);
JS

Capybara.current_session.driver.browser.execute_script(script, element.native)
end
end

然后在您的测试中,您可以通过传递一个普通的 Capybara 元素来利用该代码:

scroll_to(page.find("button.some-class", visible: false))

关于selenium-webdriver - 使用 Capybara 和 Selenium 将按钮自动滚动到 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17623075/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com