2017-10-18 16 views
3

私はロボットフレームワークテストスイートでクロムヘッドレスを実行しようとしています。 は、私は次のようにセレンを使用してのpythonでindependtlyそれを行うために管理:ロボットフレームワークを使用してヘッドレスREMOTEクロムを実行する方法

options = webdriver.ChromeOptions() 
options.add_argument('--headless') 
my_driver = webdriver.Remote(command_executer=my_remote_address, desired_capabilities=options.to_capabilities) 

次のコードは、私はロボットでやったことですが、うまくいきませんでした:

${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
${options.add_argument}= Set Variable add_argument=--headless 
Create WebDriver Chrome chrome_options=${options} 

Open Browser http://www.google.com chrome 

答えて

3

でキーワードを実行します。これは、Open BrowserCreate WebdriverのURLへのナビゲート方法の両方で機能します。

*** Settings *** 
Library Selenium2Library 

Suite Teardown Close All Browsers 

*** Test Cases *** 
Headless Chrome - Create Webdriver 
    ${chrome options} =  Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    Call Method ${chrome options} add_argument headless 
    Call Method ${chrome options} add_argument disable-gpu 
    ${options}=  Call Method  ${chrome_options} to_capabilities  

    Create Webdriver Remote command_executor=http://localhost:4444/wd/hub desired_capabilities=${options} 

    Go to  http://cnn.com 

    Maximize Browser Window 
    Capture Page Screenshot 

Headless Chrome - Open Browser 
    ${chrome_options} =  Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    Call Method ${chrome_options} add_argument headless 
    Call Method ${chrome_options} add_argument disable-gpu 
    ${options}=  Call Method  ${chrome_options} to_capabilities  

    Open Browser http://cnn.com browser=chrome remote_url=http://localhost:4444/wd/hub  desired_capabilities=${options} 

    Maximize Browser Window 
    Capture Page Screenshot 
+0

が働いた!どうもありがとう。 –

+0

2番目の解決策( 'Open Browser [...] chrome')では、オプションを' chrome_options = $ {chrome_options} 'として渡すときに' to_capabilities'への呼び出しを保存することができます。 – jotrocken

0

以下を試してみてください。あなたは引数を設定し、Remote Driverオプションを使用しているとき、彼らは使用することができるような機能にそれらを変換する必要があり、ヘッドレスを実行するテスト・セットアップ

Running the tests in chrome headless 
    ${chrome options} =  Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    Call Method ${chrome options} add_argument headless 
    Call Method ${chrome options} add_argument disable-gpu 
    Create Webdriver Chrome chrome_options=${chrome options} 
+0

あなたが書いた内容は、ブラウザlocalyを開くのに良いことです。 –

+0

ヘッドレス引数をリモートのクロムに送信するにはどうすればいいですか?私の質問の最初のコード例で書いたものと同様に –

0

これら二つのキーワードを試してみてください:秒1は、リモートChromeを起動することですしながら、

Open Chrome 
    [Arguments] ${url} ${lang} 
    ${chrome_options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    Call Method ${chrome_options} add_argument headless 
    Call Method ${chrome_options} add_argument disable-gpu 
    Create Webdriver Chrome chrome_options=${chrome_options} 
    Go To ${url} 

Open Remote Chrome 
    [Arguments] ${url} ${remote_url} ${lang} 
    ${chrome_options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
    Call Method ${chrome_options} add_argument headless 
    Call Method ${chrome_options} add_argument disable-gpu 
    Open Browser ${url} Chrome remote_url=${remote_url} desired_capabilities=${chrome_options.to_capabilities()} 

まず一つは、地元のクロムを起動します。リモート対ローカルを単一のキーワードにする必要がある場合は、呼び出すキーワードを決定するブール引数を使用してこれらの2つのラッパーを作成できます。

0
${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver 
Call Method ${options} add_argument headless 
Call Method ${options} add_argument disable-gpu 
Create WebDriver Chrome chrome_options=${options} 
Goto https://www.cnn.com/ 
Wait Until Page Contains Politics today 
Close Browser 
0

私は、ChromeとFirefoxのネイティブ、ヘッドレス、またはドッカーを実行する方法と、実行時間の比較チャートを含む方法の例を作成しました。私のgithubページで例を見つけることができますhttps://github.com/shnigi/Docker-Headless-Testing-Demo

しかし、主なアイデアは両方のテストでchromeriverとgeckodriverにいくつかの引数を使ってブラウザを起動するようにSeleniumのwebdriver APIを使用することです。 SeleniumLibraryのOpen Browserキーワードにはこの機能はありませんが、Create Webdriverはそのトリックです。

Open Headless Chrome Browser to Page 
    ${chrome_options}= Evaluate  
    sys.modules['selenium.webdriver'].ChromeOptions() sys 
    Call Method ${chrome_options} add_argument test-type 
    Call Method ${chrome_options} add_argument --disable-extensions 
    Call Method ${chrome_options} add_argument --headless 
    Call Method ${chrome_options} add_argument --disable-gpu 
    Call Method ${chrome_options} add_argument --no-sandbox 
    Create Webdriver Chrome chrome_options=${chrome_options} 
    Set Window Size 1920 1080 
    Go To ${PAGE URL} 

Firefox true headless 
    ${firefox options}=  Evaluate sys.modules['selenium.webdriver'].firefox.webdriver.Options() sys, selenium.webdriver 
    Call Method ${firefox options} add_argument -headless 
    Create Webdriver Firefox firefox_options=${firefox options} 
    Set Window Size 1920 1080 
    Go To ${PAGE URL} 
    Page Should Be Open 

最新のブラウザとドライバがインストールされている必要があります。

関連する問題