【问题标题】: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 访问变量的调整。
我希望这可以帮助某人............