【问题标题】:Selenium IDE, Selenium Client, Ruby, Rails 3, session maintenanceSelenium IDE、Selenium 客户端、Ruby、Rails 3、会话维护
【发布时间】:2025-11-24 14:30:01
【问题描述】:

我对 Selenium 很陌生。目前我正在使用 selenium 驱动程序在 ruby​​ on rails 中编写测试用例。在应用程序中,我需要为每个测试用例登录和注销。因此,我将每个测试用例从 Selenium IDE 导出到 rails 3。我需要为多个测试用例使用相同的浏览器会话。所以我在需要在单个 ruby​​ 文件中执行的测试用例之前调用登录测试。是否可以使用 Selenium Client 或 Selenium Webdriver 在 Rails 3 中为连续的下一个测试维护浏览器会话?

【问题讨论】:

    标签: ruby-on-rails session selenium client webdriver


    【解决方案1】:

    我为 Ruby on Rails 3 中的 Selenium Client/Webdriver 找到了解决此问题的方法。要维护从测试脚本到另一个脚本的会话,您唯一需要的是会话变量。由于我编写了不同的登录脚本,并且该脚本在不同的其他脚本文件中被调用,因此我必须从另一个文件中访问登录脚本中的会话变量。 要从登录脚本访问变量,里面的代码被转换为模块。 这就是它对我的工作方式: - - 开始 - - - ------登录.rb----- 模块模块名称 def 方法名 ----编写通过 selenium 所需的特定登录代码---#

    @variable = SELENIUM::CLIENT:DRIVER.new \ #---创建浏览器实例并存储在变量中---#

    return @variable #--从这个方法返回变量 结束

    结束

    -----File1.rb----- require Login.rb #---指定路径---# 包括模块名称

    类文件

    默认设置

    @local = ModuleName.methodName #--访问将返回会话对象的模块方法。 结尾 def test_file

    --在其余代码中访问此@local--# 结束

    结束 -----结束----

    这是从 file1 到 file2 访问变量的调整。 我希望这可以帮助某人............

    【讨论】: