Я новичок в ruby и Watir, вот моя проблема ...
У меня есть MySQL DB с тестовыми данными, которые мне нужны.В прошлом я много сделал с этими данными, и поэтому у меня есть целая библиотека PHP-инструментов для доступа к этим данным, пометки данных как используемых / используемых / плохих / и т. Д., И в целом я потратил много времени нафреймворк PHP.Поэтому мне бы очень хотелось использовать среду PHP в качестве оболочки для сценария Watir - например, использовать PHP для получения тестовых данных для входа пользователя из БД и передачи их в сценарий ruby для обработки.
Iтеперь есть сайты с javascript, которые требуют работы / тестирования, и PHP & cURL не может справиться с этим.Поэтому я работаю с Watir-WebDriver в Ubuntu 10.10 (Maverick, Desktop не Server) для этих сайтов.У меня проблема с использованием PHP shell_exec сценария ruby со всем кодом Watir.
PHP shell_exec выполняет файл - я вижу это, потому что у меня есть некоторые строки в файлекоторые отображаются.Тем не менее код выглядит как сбой в строке
ff = Watir::Browser.new :firefox
Я не получаю сообщение об ошибке от PHP.
Строка PHP:
echo shell_exec('ruby /var/www/watir_test.rb');
Скрипт ruby прекрасно работает, когда я вызываю его из окна терминала со строкой:
ruby /var/www/watir_test.rb
Я изначально ожидал, что это проблема с разрешениями, поскольку он работал из командной строки, а не из браузера.Однако, поскольку он может достаточно хорошо вызывать файл для возврата жестко закодированных данных, которые я предоставил для теста, разрешения для файла ruby, похоже, не являются проблемой.Может ли быть проблема с разрешениями при открытии окна Firefox от пользователя www-data?
Когда я запускаю
ruby -d -v /var/www/watir_test.rb
, я получаю:
{:extension=>:webdriver} {"app.update.enabled"=>"false"} {"browser.link.open_newwindow"=>"2"} {"browser.shell.checkDefaultBrowser"=>"false"} {"extensions.update.enabled"=>"false"} {"security.warn_entering_secure.show_once"=>"false"} {"webdriver_assume_untrusted_issuer"=>true} {"startup.homepage_welcome_url"=>"\"about:blank\""} {"browser.tabs.warnOnClose"=>"false"} {"extensions.update.notifyUser"=>"false"} {"toolkit.networkmanager.disable"=>"true"} {"security.warn_entering_weak.show_once"=>"false"} {"webdriver_firefox_port"=>"7055"} {"browser.download.manager.showWhenStarting"=>"false"} {"extensions.logging.enabled"=>"true"} {"network.manage-offline-status"=>"false"} {"network.http.max-connections-per-server"=>"10"} {"security.warn_submit_insecure"=>"false"} {"security.warn_entering_weak"=>"false"} {"security.warn_leaving_secure"=>"false"} {"prompts.tab_modal.enabled"=>"false"} {"security.warn_viewing_mixed.show_once"=>"false"} {"dom.max_script_run_time"=>"30"} {"webdriver_accept_untrusted_certs"=>true} {"browser.safebrowsing.enabled"=>"false"} {"security.warn_leaving_secure.show_once"=>"false"} {"signon.rememberSignons"=>"false"} {"javascript.options.showInConsole"=>"true"} {"app.update.auto"=>"false"} {"browser.EULA.3.accepted"=>"true"} {"browser.tabs.warnOnOpen"=>"false"} {"dom.disable_open_during_load"=>"false"} {"network.http.phishy-userpass-length"=>"255"} {"security.warn_entering_secure"=>"false"} {"browser.startup.homepage"=>"\"about:blank\""} {"browser.EULA.override"=>"true"} {"browser.dom.window.dump.enabled"=>"true"} {"browser.startup.page"=>"0"} {"browser.link.open_external"=>"2"} {"browser.search.update"=>"false"} {"browser.sessionstore.resume_from_crash"=>"false"} {"security.warn_viewing_mixed"=>"false"} {"dom.report_all_js_exceptions"=>"true"} {"webdriver_enable_native_events"=>false} {"devtools.errorconsole.enabled"=>"true"}
Как сделатьЯ получаю PHP для правильного выполнения shell_exec?Сценарий работает, и мои первоначальные тесты были запущены с использованием firewatir (который shell_exec работал нормально), но я действительно хочу использовать Watir-WebDriver вместо FireWatir - WatirWebDriver должен поддерживать браузер Chrome (и IE на компьютере с Windows), а FireWatirмогу запускать только Firefox.
Спасибо, Гейб
Вот мой код "Создать браузер":
# Include the RubyGems file
require 'rubygems'
# Include the Watir-WebDriver file.
require 'watir-webdriver'
# Create the necessary objects
def create_browser(proxy)
# Setup the proper Firefox Profile
profile = Selenium::WebDriver::Firefox::Profile.new
profile.proxy = Selenium::WebDriver::Proxy.new :http => proxy
puts "<br>Using proxy " + proxy + "..."
#ff=FireWatir::Firefox.new :profile => profile
ff = Watir::Browser.new :firefox #, :profile => profile
puts "<br>Firefox ready..."
return ff
end