【发布时间】:2024-04-24 17:30:02
【问题描述】:
我正在使用 ruby 中的 selenium-webdriver 和 cucumber 为网站自动化测试用例。我需要每个功能以特定的顺序运行并使用相同的浏览器窗口。 Atm 每个功能都会创建一个新窗口来运行测试。尽管在某些测试用例中,这种行为是需要的——在许多情况下并非如此。到目前为止,从我的研究来看,关于是否可以在整个测试用例中使用 selenium 驱动相同的浏览器窗口,似乎有不同的答案。我遇到的大多数答案都是针对其他语言的,并且是特定于浏览器的解决方法(我在测试 IE 时正在开发我的测试,但预计会在其他浏览器中运行这些测试)。我在 Ruby 中工作,从我读过的内容来看,好像我必须为页面创建一个类?我很困惑为什么我必须这样做或者这有什么帮助。
我的 env.rb 文件:
require 'selenium-webdriver'
require 'rubygems'
require 'nokogiri'
require 'rspec/expectations'
Before do
@driver ||= Selenium::WebDriver.for :ie
@accept_next_alert = true
@driver.manage.timeouts.implicit_wait = 30
@driver.manage.timeouts.script_timeout = 30
@verification_errors = []
end
After do
#@driver.quit
#@verification_errors.should == []
end
到目前为止,我收集了一些关于有类似问题的人的信息: https://code.google.com/p/selenium/issues/detail?id=18 Is there any way to attach an already running browser to selenium webdriver in java?
如果我的问题不清楚,请向我提问。我有更多的测试要创建,但如果我的基础草率且缺少请求的功能,我不想继续创建测试。 (如果您在我的代码中发现任何其他问题,请在评论中指出)
【问题讨论】:
-
请只发布代码的必要部分。哪一部分让你感到困惑,又是什么让你感到困惑?
-
每个功能都会在 IE 中打开一个新窗口。我想我会删掉支持代码。它可能与之前和之后有关。虽然它可能不会。
-
请重新编辑您的代码。并且只放置令人困惑的部分,即我们不需要的有效的部分。而不是无效的部分,只指出那部分。
-
我已经编辑并删掉了多余的代码。
-
好吧.. 假设您的代码以 A,B,C 的顺序打开浏览器窗口。现在你想按什么顺序关闭它们?您如何理解浏览器完成了任务,然后您将决定关闭它。
标签: ruby selenium cucumber selenium-webdriver automated-tests