web-dev-qa-db-ja.com

ロボットフレームワークを使用してヘッドレスリモートを実行する方法chrome

ロボットフレームワークテストスイートでchromeヘッドレスを実行しようとしています。次のように、Seleniumを使用してpythonで独立して実行できました。

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
12
Dan W

ヘッドレスで実行するには、Remote Driverオプションを使用するときに使用できるように、引数を設定して機能に変換する必要があります。これは、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
13
A. Kootstra

SeleniumLibrary(3.1.0)およびSelenium(3.8.0)の新しいバージョンでは、ブラウザーをheadlesschromeではなくchromeに設定するだけで済みます。

headlessfirefoxも利用可能です。

例.

Open Browser      http://www.yoursite.com    headlesschrome

http://robotframework.org/SeleniumLibrary/SeleniumLibrary.html#Open%20Browser

21
Joao Coelho

以下をお試しください。テストセットアップでキーワードを実行する

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}
2
bsd007

サンプルリポジトリを作成して、ChromeとFirefoxネイティブ、ヘッドレスまたはドッカーを使用して実行する方法を作成し、実行時間の比較チャートも含めました。サンプルはgithubページ https://github.com/shnigi/Docker-Headless-Testing-Demo

ただし、主なアイデアは、両方のテストで、SeleniumのWebdriver APIを使用して、chromedriverとgeckodriverに引数を指定してブラウザを起動することです。 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

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

0
Shnigi

次の2つのキーワードを試してください。

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()}

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

0
Verv
${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
roshan