2016-07-11 8 views
2

私は、自動フロントエンドテストのためにSelenium2LibraryとともにRobot Frameworkを使用しています。通常、私はFirefoxブラウザでこれらのテストを実行しました。 Firefoxのバージョン47以降、Selenium2LibraryのFirefoxDriverに組み込まれている機能は、もう動作しません。インターネットで少し調べたところ、私はMarionette akaに切り替える必要があります。ゲッコードライバー。Robot Frameworkを使用してシステムプロパティ "webdriver.gecko.driver"を設定する方法は?

私は、次のエラーメッセージが表示されます、これをしようとしている間:

スイートのセットアップに失敗しました:WebDriverException:メッセージ: ドライバの実行可能ファイルへのパスがwebdriver.gecko.driverシステムによって プロパティを設定する必要があります。詳細については、https://github.com/jgraham/wiresを参照してください。 最新バージョンは https://github.com/jgraham/wires再び

からダウンロードすることができます私は、インターネットでのパスにGeckoDriver実行可能ファイルを設定する方法を見つけることを試みたが、私は唯一のJavaの道を見つけました。 PythonやRobot Frameworkのどちらにもなりません。誰かが、PythonやRobot Frameworkのいずれかでシステムプロパティを設定する方法を知っていますか?

答えて

0

これは、Firefox 47と(マリオネット/ Geckoのドライバを試して、あなたを導い)Selenium2Libraryとの互換性の問題を解決するための答えである:

のFirefox 47は、それがセレンwebdriverをして​​クラッシュさせるバグがありました。このバグはFirefox 47.0.1(release notesを参照)で修正されています。

最新のSelenium2Library(またはSelenium 2.53.6)とFirefox 47.0.1の組み合わせで正常に動作します。

これが役に立ちます。

2

マリオネットを使用したくない場合は、Mukeshの答えに従ってバージョンを変更してください。 Marionetteを使用する場合、最も簡単な方法は、by the Mozilla developersのように、システムパスにワイヤ(または今後のgeckodriver)を追加することです。

Pythonバインディングでは、パラメータ以外のGeckoDriverへのパスをwebdriver __init__に設定することはできません。したがって、システムパスの変更がオプションでない場合、実行可能ファイルへのパスをSeleniumに渡す唯一の方法があります。 Robot Frameworkから、Create Webdriverでこれを行うことができます。 Firefoxの__init__はhereと書かれています。

*** Settings *** 
Library   Selenium2Library 
Library   Collections 

*** Test Cases *** 
Specifying Path To GeckoDriver 
    ${ff default caps} Evaluate sys.modules['selenium.webdriver'].common.desired_capabilities.DesiredCapabilities.FIREFOX sys,selenium.webdriver 
    Set To Dictionary ${ff default caps} marionette=${True} 
    Create Webdriver Firefox executable_path=C:\\stuff\\wires.exe 
    Go To https://stackoverflow.com 
    Sleep 2 s 
    [Teardown] Close All Browsers 
関連する問題