【发布时间】:2012-03-30 08:25:54
【问题描述】:
我正在尝试从 selenium-webdriver (ruby) 实现以下方法
- get_all_window_ids
- get_all_window_titles
- get_all_window_names
- 我运行 Selenium IDE 并将我的脚本导出到 Ruby Test::Unit。保存为.rb
- 使用 Aptana Studio 3 打开我的脚本进行编辑
- 初始代码sn-p如下:
require "rubygems"
require "selenium-webdriver"
require "test/unit"
class SwitchToPopup3 < Test::Unit::TestCase
def setup
@driver = Selenium::WebDriver.for :firefox
@base_url = (URL of my test website)
@driver.manage.timeouts.implicit_wait = 30
@verification_errors = []
end
def teardown
@driver.quit
assert_equal [], @verification_errors
end
def test_switch_to_popup3
.
.
puts @driver.get_all_window_ids()
puts @driver.get_all_window_titles()
puts @driver.get_all_window_names()
.
.
end
我不断收到的错误是
NoMethodError: undefined method `get_all_window_ids' for # <Selenium::WebDriver::Driver:0x101e4b040 browser=:chrome>
/Users/rsucgang/Documents/Aptana Studio 3 Workspace/Testing/SwitchToPopup2.rb:37:in `test_switch_to_popup3'
我研究了 selenium-webdriver 的 ruby 绑定文档
我的最终目标是运行我的自动化脚本:
- 单击链接会打开一个新窗口,其中 target=_blank 且没有可用的 windowID(不实现 JS)
- 识别浏览器中所有打开窗口的名称
- 使用 switchToWindow(name) 方法切换到新的弹出窗口
- 继续在该弹出窗口上运行我的脚本
我已经在互联网上搜索并研究了这一点,但我没有得到任何信息。
谢谢,如果您需要更多信息,请告诉我。
- OSL Mac OSX 10.7.3
- Ruby:ruby 1.8.7(2010-01-10 补丁级别 249)[universal-darwin11.0]
- 浏览器:Firefox 9.0.1 (Mac)
- Chrome:Chrome 17.0.963.79 (Mac)
- Selenium 服务器:Ruby gem 2.20.0
【问题讨论】:
-
+1,我很少在 SA 上看到如此有据可查的第一篇文章。
-
只是一个小改动。错误消息包含“browser=:chrome”,而我的代码表明驱动程序用于:firefox。我在运行 :chrome 实例时粘贴了错误代码。无论如何,两个浏览器驱动程序仍然会产生相同的 noMethodError 消息。