2017-10-20 11 views
1

chromeブラウザを初期化するためのpythonコードを作成しました。このドライバインスタンスをRobot Frameworkに渡して、RFのキーワードがこのインスタンスで機能するようにします。どうすればいいのか教えてください。 ファイルをintializingためのPyのコードは次のとおりです。ロボットフレームワークでそれを使用するときにRobot Framework:Robotフレームワークでユーザー作成のブラウザインスタンスを使用する方法

'class SeleniumKeywords: 

    ROBOT_LIBRARY_SCOPE = 'GLOBAL' 

    def __init__(self): 
     self.driver = None 

    def open_browser(self, browser="chrome"): 
     driver_class = drivers[browser] 
     self.driver = driver_class() 

    def go_to(self, url): 
     self.driver.get(url)' 

さて、ブラウザが開きますが、RFのキーワードは、その上に仕事(selenium2libraryキーワード)をdoesntの。基本的には、カスタムキーワードを使用してブラウザインスタンスを開き、RFでselenium2libraryキーワードを使用して最大化します。残念ながら、それは動作しません。

'*** Settings *** 
Library ExtendedSelenium2Library 
Library ../Resources/SeleniumKeywords.py  
Resource ../Global/GlobalConfig.robot 




*** Test Cases *** 
Reuse Session ID 
    SeleniumKeywords.Open Browser chrome 
    maximize browser window 
    SeleniumKeywords.Go To ${URL} ' 

最大化ブラウザウィンドウがRFキーワードであると私はそれは私が自分自身のライブラリを書かれている

+0

独自のドライバを作成する代わりに、 'ExtendedSelenium2Library'によって作成されたドライバを使用している理由がある:あなたが本当にあなた自身のセレンのライブラリが必要な場合は

は、あなたがこのような何かを行うことができますか?なぜあなたのコードでは、代わりに 'ExtendedSelenium2Library'で開かれたものを使用しないでください? –

+0

「ブラウザウィンドウを最大化する」という警告が表示されます。特に、Chromeで広告されたとおりに動作するとは限りません。また、テストケースを短縮することもできます: 'Open Browser $ {URL} chrome'、' Maximize Browser Window'です。ブラウザウィンドウを最大化すると設定が有効になります。これは、実行しようとしているように見えます。 SeleniumKeywordsを特別に呼び出す必要はなく、 'Library ExtendedSelenium2Library'呼び出しを使用してインスタンス内のキーワードを既に初期化しています。 –

答えて

0

私browserinstanceに仕事をしたいが、私:私はRFにこのブラウザインスタンスを渡す方法を教えてくださいSelenium2Libraryを拡張し、Selenium2Libraryのキーワードを自分のものと混在させることができます。 Selenium2Libraryまたはあなたのケースでは、ExtendedSelenium2LibraryはPythonで開始したばかりのセッションを認識せず、 "No browser is open"エラーを表示します。 「ブラウザウィンドウを最大化する」キーワードは、「ブラウザを開く」キーワードで開かれたブラウザに依存する。

class SeleniumKeywords(ExtendedSelenium2Library): 

    def go_to(self, url, browser="chrome"): 
     self.open_browser(url, browser) 
関連する問題