Запуск cucumber + watir-webdriver + mac os x по SSH дает «Элемент не может быть прокручен в поле зрения» - PullRequest
0 голосов
/ 25 января 2012

У меня есть проект с огурцом, использующий watir-webdriver и безголовый, который прекрасно работает на моей рабочей станции Mac. Я настроил специального пользователя "jenkins" на моей рабочей станции, которому принадлежит этот проект, поскольку я намерен преобразовать свою рабочую станцию ​​в узел Jenkins. При запуске тестов через командную строку от имени пользователя «jenkins» или через мою локальную установку Jenkins все работает нормально.

Однако, когда я запускаю SSH на своей рабочей станции из удаленного Unix-бокса и пытаюсь запустить cucumber из командной строки, некоторые из моих тестов возвращаются:

Element cannot be scrolled into view:http://[url] (Selenium::WebDriver::Error::MoveTargetOutOfBoundsError)

Вот мой фрагмент env.rb, который настраивает браузер:

require 'headless'
headless = Headless.new
headless.start

require 'watir-webdriver'
browser = Watir::Browser.new :firefox

Before do
  @browser = browser
end

# "after all"
at_exit do
  browser.close
  headless.destroy
end

Интересно, что некоторые тесты все еще проходят, и огурец по-прежнему генерирует скриншоты, так что по SSH огурец все еще открывает firefox, преуспевает в некоторых тестах, делает скриншоты и закрывается.

Обновление : Создан новый подчиненный Jenkins на хосте Ubuntu с точно такими же настройками / установкой / проектом, и он работает просто отлично. По-видимому, подтверждает, что это проблема X11 на Mac OSX Lion. Может быть, порт в xquartz для Mountain Lion поможет.

Ответы [ 2 ]

0 голосов
/ 10 февраля 2012

Возможно, вы страдаете от этой ошибки в Selenium / WebDriver:

Selenium Webdriver

Они работают над этим;Включение встроенных событий помогает на некоторых платформах / браузерах.

0 голосов
/ 26 января 2012

Я не использовал безголовый для тестирования. У Алистера Скотта был пример этого в его блоге , и он НЕ использовал Firefox.

require 'watir-webdriver'
require 'headless'
headless = Headless.new
headless.start
b = Watir::Browser.start 'www.google.com'
puts b.title
b.close
headless.destroy

Вы должны добавить следующий код в файл env.rb:

if ENV['HEADLESS']
  require 'headless'
  headless = Headless.new
  headless.start
  at_exit do
    headless.destroy
  end
end
...