Есть ли способ НЕ открывать новое окно каждый раз, когда я нажимаю на ссылку в Chrome, используя watir-webdriver - PullRequest
3 голосов
/ 14 апреля 2011

Я пытаюсь использовать Google Chrome для автоматизации тестирования мобильного приложения, разработанного на JavaScript для iPhone, и, поскольку оно основано на Webkit, только Safari и Google Chrome могут отображать контент, поэтому у меня нет другого выбора, кроме как использовать watir. -webdriver.

Я провел много исследований, пытаясь найти решение для автоматизации в Google Chrome, и самое близкое, что я мог получить, - это Watir-WebDriver.

У меня есть следующий код:

require "rubygems"
require "watir-webdriver"
browser = Watir::Browser.new(:chrome)

website = "http://xxx.yyy.zzz"
browser.goto(website)
browser.link(:xpath,"/html/body/div/ul/li/a").click   #step1
browser.link(:xpath,"/html/body/div/div[2]/div/ul/li//*[@id=btn_WEBURL]").click     #step2

Как только выполняется # step1, содержимое открывается в новом окне браузера, что приводит к:

C:/Program Files/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.2.2/lib/watir-
webdriver/elements/element.rb:241:in `assert_exists': unable to locate element,
using {:xpath=>"/html/body/div/div[2]/div/ul/li//*[@id=btn_WEBURL]", :tag_name=>
"a"} (Watir::Exception::UnknownObjectException)
        from C:/Program Files/Ruby187/lib/ruby/gems/1.8/gems/watir-webdriver-0.2
.2/lib/watir-webdriver/elements/element.rb:69:in `click'
        from ft.rb:13

Есть ли способ НЕ открывать новое окно каждый раз, когда я нажимаю на ссылку в Chrome, используя watir-webdriver. Или любое другое решение моей проблемы.

Спасибо

1 Ответ

1 голос
/ 04 августа 2011

Вы можете найти и использовать другое окно:

browser.window(:title => "your popup window").use do  
  browser.button(:id => "close").click
end

см. Больше примеров: https://github.com/jarib/watirspec/blob/watir2/window_switching_spec.rb

...