Tag: selenium

使用Cucumber – Selenium Ruby测试报告输出

我希望从我的Cucumber测试中获得报告输出。 到目前为止,我可以提出以下内容: cucumber features/feature_name.feature -f json -o C:/Reports 这只会在测试结束时产生一个json报告,你无法像黄瓜一样发现它们的结果。 我是否可以同时执行这两项操作,以便在cmd中看到绿色/红色步骤并在结束时获取json报告? 谢谢

使用capybara捕获浏览器控制台日志

我需要使用Ruby和Capybara捕获浏览器的控制台日志(类别:信息)。 直到现在我已经尝试使用driver.manage.logs.get(:browser)或(:client),但是使用它,结果不是我想要的。 它给出了selenium和浏览器之间的交互结果,我可以看到我的javascript语句被发送执行,但结果输出无法捕获。 需要帮忙!!!

是否有镀铬开关来抑制“外部协议请求”?

是否有镀铬开关来抑制“外部协议请求”? 我正在使用selenium – ruby​​ – watir webdriver自动化应用程序。 我在网上搜索了绕过此窗口和对话的解决方案: http : //productforums.google.com/forum/#!topic/chrome/K22hXwRy6zQ概述了我们如何手动执行此操作。 但对于Selenium-Chrome-Ruby,我需要通过设置chrome开关来实现这一点(chorme开关列表:= http://src.chromium.org/svn/trunk/src/chrome/common/chrome_switches.cc ) 。 这是一个巨大的清单。 我需要帮助找出哪个开关可能会帮助我绕过外部协议请求窗口,或者通过自动化有什么解决方法?

如何通过坐标(使用WebDriver)单击canvas中的特定元素?

我的页面上有一个canvas元素,我想点击这个canvas中的特定(x,y)坐标。 我用watir-webdriver: element = browser.driver.find_element(:id, ‘canvas’) browser.driver.action.move_to(element).move_by(x, y).click().perform 但是这段代码只是点击canvas的中心,而不是指定的(x,y)坐标。 这有什么问题? UPD:现在我使用这段代码: element = browser.driver.find_element(:id, ‘canvas’) browser.driver.action.move_to(element, x, y).perform browser.driver.click.perform 但它仍然点击canvas的中心而不是指定的(x,y)坐标……有什么想法吗? UPD 2:这只是FIREFOX问题(适用于Chrome)

Cucumber / Capybara vs Selenium?

前几天,我向我公司的一位测试人员展示了我用黄瓜写的一些测试(2个function,5个场景)。 然后他问了我无法回答的问题: 这比selenium或任何其他function测试录音工具更好吗? 我知道黄瓜是一种不同的技术,它处于不同的测试水平,但我不明白为什么我应该费心去编写和维护Cucumber / Capybara测试。 有人可以给我一个合理的解释,使用Cucumber / Capybara而不仅仅是Selenium吗?

用水豚进行平行selenium试验

背景: 我有一组针对我的Rails 3应用程序运行的Capybara集成测试。 对于测试套件的其他部分,我正在使用Rspec 。 我的Mac OSX开发机器上有一个selenium 2.6.0独立服务器集线器。 java -jar selenium-server-standalone-2.6.0.jar -role hub 我正在运行几个虚拟机,每个虚拟机都与一个selenium节点连接到集线器: java -jar selenium-server-standalone-2.6.0.jar -role webdriver -hub http://0.0.1.12:4444/grid/register port 5555 -browser browserName=”internet explorer”,version=8,platform=WINDOWS 这很好用,在这个截图中,控制台显示我有一个连接到集线器的IE7和IE8浏览器: 我已经设置了capybara来对抗selenium hub(将测试委托给节点)。 Capybara.app_host = “myapp.dev” Capybara.default_driver = :selenium Capybara.register_driver :selenium do |app| Capybara::Selenium::Driver.new(app, :browser => :remote, :url => “http://localhost:4444/wd/hub”, :desired_capabilities => :internet_explorer) end 它可以工作,但它只会在单个internet_explorer节点上运行测试。 它似乎是“排在第一位”的那个; 如果我将其关闭,测试将在另一个节点上成功运行。 我一直在尝试parallel_tests项目,按照建议配置capybara,但这仍然只会启动一个集成测试。 如何同时在所有internet_explorer节点上运行我的集成? […]

有没有人想出办法在多个浏览器/网络驱动程序上运行相同的黄瓜方案?

我正在使用黄瓜+水豚进行一些网络自动化测试。 我希望能够连接我自己的标签(类似于场景之前的@all_browsers)并让它针对我设置的网络驱动程序列表运行(快速,firefox上的selenium,即Chrome和Chrome)。 我不想在前面用4个不同的标签写4个不同时间的场景。 我试着通过我注册的新驱动程序来尝试这样做: Capybara.register_driver :all_browsers do |app| # What would even work in here? I don’t think anything will. end 然后跟进: Before(‘@all_browsers’) do # Same problem here. end 但是我不太确定要放入哪种方法可能会有效。 我尝试过使用黄瓜钩,特别是: Around(‘@all_browsers’) do |scenario, block| Capybara.current_driver = :selenium_firefox block.call Capybara.current_driver = :selenium_chrome block.call # etc end 但这并不像我希望的那样。 它使用相同的驱动程序并使用它运行场景两次。 沿着钩线,这是黄瓜文件中的这个: You may also provide an AfterConfiguration […]

selenium webdriverexception

今天,当我使用selenium webdrive时,我收到了一个错误。 我的平台是mac osx。 这是我的exception日志。 ruby-1.9.2-p0 > Selenium::WebDriver.for :firefox Selenium::WebDriver::Error::WebDriverError: unable to bind to locking port 7054 within 45 seconds from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/socket_lock.rb:48:in `lock’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/socket_lock.rb:29:in `locked’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/launcher.rb:32:in `launch’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/firefox/bridge.rb:21:in `initialize’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/common/driver.rb:38:in `new’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver/common/driver.rb:38:in `for’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/selenium-webdriver-0.1.0/lib/selenium/webdriver.rb:51:in `for’ from (irb):8 from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:44:in `start’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands/console.rb:8:in `start’ from /Users/Apple/.rvm/gems/ruby-1.9.2-p0/gems/railties-3.0.1/lib/rails/commands.rb:23:in `’ from script/rails:6:in `require’ […]

如何为Chrome构建远程Webdriver

我正在尝试对Chrome运行我的Selenium测试。 当我在本地初始化驱动程序时: @driver = Selenium::WebDriver.for( :chrome ) 一切正常(我已经将Chrome二进制文件放在我的PATH上)但是当我尝试远程启动时: @driver = Selenium::WebDriver.for(:remote, :url => ‘http://’ + SELENIUM_HOST + port + webdriver_hub, :desired_capabilities => :chrome) 我收到以下错误 Selenium :: WebDriver :: Error :: UnhandledError:chromedriver可执行文件的路径必须由webdriver.chrome.driver系统属性设置; 有关详细信息,请参阅http://code.google.com/p/selenium/wiki/ChromeDriver 。 最新版本可以从http://code.google.com/p/chromium/downloads/list下载(java.lang.IllegalStateException) 我在那里有点困惑 – 我究竟应该如何设置这个系统属性? 我发现这段代码用Java编写: DesiredCapabilities caps = DesiredCapabilities.chrome(); caps.setJavascriptEnabled(true); caps.setCapability(“chrome.binary”, “/path/to/where/chrome/is/installed/chrome.exe”); System.setProperty(“webdriver.chrome.driver”,”/path/to/where/you/ve/put/chromedriver.exe”); ChromeDriver driver = new ChromeDriver(caps); 但我的测试是用Ruby编写的。 RubyBindings没有谈论这个问题http://code.google.com/p/selenium/wiki/RubyBindings

Selenium Webdriver和Chrome驱动程序 – 无法运行chrome驱动程序

我正在尝试运行一个ruby文件,它将使用selenium webdriver启动chrome驱动程序。 我有selenium独立服务器2.35.0。 和chromedriver可执行文件安装。 我正在通过运行启动服务器, java -jar ./selenium-server-standalone-2.35.0.jar -Dwebdriver.chrome.bin=/usr/bin/google-chrome -Dwebdriver.chrome.driver=/home/./chromedriver & 两个会话正在启动,Chrome驱动程序无法启动。 05:07:34.328 INFO – Executing: [new session: {platform=ANY, javascriptEnabled=tr ue, cssSelectorsEnabled=true, browserName=chrome, nativeEvents=false, rotatable= false, takesScreenshot=false, version=, chrome.switches=[–ignore-certificate-er rors]}] at URL: /session) 05:07:34.329 INFO – Creating a new session for Capabilities [{platform=ANY, cssS electorsEnabled=true, javascriptEnabled=true, browserName=chrome, nativeEvents=f alse, rotatable=false, takesScreenshot=false, chrome.switches=[–ignore-certific ate-errors], version=}] Starting […]