私はRubyとWatirを初めて使用します。これが私の問題です...
必要なテスト データを含む MySQL DB があります。私は過去にこのデータを使って多くのことを行ってきたので、このデータにアクセスし、データを使用中/使用中/不良/その他としてマークするための PHP ツールのライブラリ全体を持っています。 PHP フレームワーク。したがって、Watir スクリプトのラッパーとして PHP フレームワークを使用したいと考えています。たとえば、PHP を使用して DB からテスト ユーザーのログイン データを取得し、処理のために Ruby スクリプトに渡します。
私は現在、作業/テストが必要なjavascriptを使用したサイトを持っていますが、PHPとcURLはこれに対処できません。したがって、これらのサイトでは、Ubuntu 10.10 (Maverick、サーバーではなくデスクトップ) で Watir-WebDriver を使用しています。私が抱えている問題は、すべての Watir コードで Ruby スクリプトの PHP の shell_exec を使用することです。
PHP shell_exec がファイルを実行しています。表示されているファイルにいくつかの puts 行があるため、それを見ることができます。ただし、コードは行で失敗しているようです
ff = Watir::Browser.new :firefox
PHP からエラーが発生しません。
PHP の行は次のとおりです。
echo shell_exec('ruby /var/www/watir_test.rb');
次の行を使用してターミナル ウィンドウから呼び出すと、Ruby スクリプトは正常に動作します。
ruby /var/www/watir_test.rb
コマンドラインからでは機能しましたが、ブラウザーからは機能しなかったため、これはパーミッションの問題であると当初は予想していました。ただし、テスト用に提供したハードコードされたデータを返すのに十分なほどファイルを呼び出すことができるため、Ruby ファイルのアクセス許可は問題ではないようです。www-data ユーザーから Firefox ウィンドウを開く際にパーミッションの問題が発生する可能性はありますか?
私が走るとき
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 は正常に実行されました) が、実際には FireWatir の代わりに Watir-WebDriver を使用したいと考えています。 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