robotframework + selenium driver + chrome driver | 瀬戸内の雲のように

robotframework + selenium driver + chrome driver で言語設定を日本語にするオプション

Posted: 2018-05-24


スポンサーリンク

目次

背景

近年の自動化ブームに乗り、私のチームでもいろいろと自動化の施策を行っています。

そんな中、Webアプリケーションなどブラウザで操作する系のアプリケーションの試験自動化には selenium がよく使われていると思います。

今回は、そんなseleniumの日本語設定についてメモしておきます。

環境

・amazon linux
・Robot Framework 3.0.4 (Python 2.7.14 on linux2)
・ChromeDriver 2.38.552522

困ったこと

自作のWebアプリケーションの私見自動化を行おうと思ったところ、ログインからつまづいてしまいました。

やりたいことは非常にシンプルで「ログイン」と書かれたボタンをクリックするというだけなのですが、なぜかうまくいきません。

 
確認したところ、原因はブラウザの言語設定でした。

 
最近?のwebアプリケーションはブラウザの言語設定を見て表示する言語を変えるらしく、会社パソコンから普通にアクセスすると日本語で表示されます。

しかし、デフォルトでは言語が英語になっているため、「Login」というボタンになっており、うまく動かなかったということです。

解決方法

chromedriverのオプションで言語設定ができました。

robotframeworkで書く場合の一例は以下のようになります。

    ### オプションの設定
    ${options} =  evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys

    ### 日本語で表示させるオプション
    Call Method  ${options}  add_argument   --lang\=ja

    ### 起動
    Create Webdriver  Chrome  chrome_options=${options}

 
上記を取り入れて改善したのが以下のソースコードです

*** Settings ***
Library    SeleniumLibrary


*** Variables ***
${username}    user1
${password}    password123
${url}               http://localhost:8000/login

*** TestCases ***
My Test Case
    start headless chrome 
    go to myapp
    Close Browser

*** Keywords ***
check set_headless method
    ${version} =  evaluate  selenium.__version__  selenium
    ${selenium_version} =  evaluate  importlib.import_module('distutils.version').LooseVersion($version)  importlib
    # set_headlessメソッドが実装されたバージョン
か確認
    ${min_version} =  evaluate  importlib.import_module('distutils.version').LooseVersion('3.8.0')  importlib

    Pass Execution If  $selenium_version < $min_version  seleniumが${min_version}以上でないと動作しません


start headless chrome 
    check set_headless method
    ${options} =  evaluate  sys.modules['selenium.webdriver'].ChromeOptions()  sys
    Call Method  ${options}  set_headless

    ### 日本語で表示させるオプション
    Call Method  ${options}  add_argument   --lang\=ja
    Create Webdriver  Chrome  chrome_options=${options}

go to myapp
    # ブラウザでアクセスする
    Go To    ${url}

    # ログイン
    Input Text    username    ${username}
    Input Text    password    ${password}
    Click button    ログイン

    # 10秒待つ
    Sleep    10sec
    # スクリーンショットを撮る
    Capture Page Screenshot    filename=result_login.png

以上です。


スポンサーリンク




コメント一覧


コメントを投稿する


お名前


コメント内容





TOP back