2017-12-14 1 views
-1

いくつかの機能を持つTest.pyファイルを作成し、それらの関数名をsample.robotファイルのキーワードとして使用しました。Robotフレームワークスクリプトの実行時に "No Browser is Open"という問題が発生しています

例: - の.pyで別に得キーワードからTest.py

def Launch_URL(url): 
    driver.get(url) 

def article(publication): 
    do something here 

Sample.robot

Library Selenium2Library 
Library Test.py 

*** Test Cases **** 
Open app  
    Launch URL "https://stackoverflow.com" 
    article  something 
    Click Element xpath=/html/body/div[1]/div/div/button/i 

私はまた、ロボットファイルにキーワードClick Elementに建て使用したいです。上記のスクリプトを実行すると、のエラーClick Elementのエラーが表示されます。

+0

ブラウザを開いている場所はどこにも表示されません。彼らはどこにも現れないだけでなく、明示的にオープンしなければなりません。 –

+0

コメントには触れていませんが、私の.pyファイルにdriver = webdriver.Chrome()を使用しました – Uday

+0

'Launch_URL'を呼び出す前に、' driver = webdriver.Chrome() 'が実際にエラーなく実行されていることを確かめてください。 ? –

答えて

1

click elementキーワード(および他のすべてのキーワード)は、Selenium2Libraryによって開かれたブラウザに依存しています。ロボットライブラリではなくPython Seleniumモジュールで開くので、Selenium2Libraryのキーワードはブラウザについてはわかりません。

Selenium2LibraryとPythonコードの両方で同じブラウザを使用する必要がある場合、最良の方法はSelenium2Libraryでブラウザを開き、そこからドライバの参照を取得してPythonで使用することです。あなたのテストでopen browserを使用したくない場合は

from robot.libraries.BuiltIn import BuiltIn 
def Launch_URL(url): 
    se2lib = BuiltIn().get_library_instance('Selenium2Library') 
    driver = se2lib._current_browser() 
    driver.get(url) 

:あなたはこのようにpythonでそのブラウザ用のドライバを使用することができ、open browserまたはcreate webdriverキーワードを使用して、ブラウザを開いたと仮定すると

、およびLaunch URLは、あなたが最初に使用するキーワードことを期待し、あなたのキーワードからopen_browserを呼び出すことができます。

def Launch_URL(url): 
    se2lib = BuiltIn().get_library_instance('Selenium2Library') 
    se2lib.open_browser(url, "chrome") 

ここでは別の同様の質問です:Pass existing Webdriver object to custom Python library for Robot Framework

Pythonで組み込みのキーワードを使用するキーワードを書きたい場合、またセレンモジュールに直接アクセスできる場合は、この詳細をすべて扱うpage object libraryを使用することをお勧めします。

注:Selenium2Libraryのバージョン2ではプライベートメソッド_current_browserの使用は避けられません。公開インタフェースは、SeleniumLibraryのバージョン3で利用可能になっています。ギターの問題を参照してください#882

+0

私はすでにlaunch_url関数の外側にdriver = webdriver.Chrome()を宣言しています。私が同じことをしていれば、ブラウザはまったく開いていません。私を助けてください。 – Uday

+0

@Uday: 'driver = webdriver.Chrome()'を使用すると、Selenium2Libraryキーワードは機能しません。それはそれと同じくらい簡単です。他のセレン関数を呼び出す前に 'open browser'キーワードを使う必要があります。 –

関連する問題