LoginSignup
1
0

T-DASHでセッション状態を維持してブラウザ起動してみた

Last updated at Posted at 2022-07-21

この記事について

T-DASH標準のブラウザ操作キーワードでは毎回セッション情報をクリアして起動する。
ワンタイムパスワードやreCAPTCHAの回避が大変なのでうまい方法がないか調査した結果を記載しています。

もともとの回避方法

起動直後に秒待機入れて手動でワンタイムパスワードを回避。

image.png

  うん。手間(笑)

セッション情報の保持ができないか調べる

素敵な記事を発見。

chromeDriverにChromeのプロファイル情報のパスを設定すればセッション情報が引き継げる様子。

chromeDriver.AddArgument("user-data-dir=" & PROFILE_PATH)

RobotFrameworkでのchromeDriver設定方法を調べる

T-DASHではRobotFrameworkを使用したカスタム動作の作成が可能な為、調べてみる。
書き方がわからないのでrobotframework user-data-dirでググる。すると書き方発見。

Open Chrome Using Create WebDriver Keyword
    ${options}=    Evaluate    sys.modules['selenium.webdriver'].ChromeOptions()    sys,selenium.webdriver
    Call Method    ${options}    add_argument    --allow-running-insecure-content
    Call Method    ${options}    add_argument    --disable-web-security
    Call Method    ${options}    add_argument    --user-data-dir\=/Users/myName/AppData/Local/Google/Chrome/User Data
    Create WebDriver    Chrome    chrome_options=${options}
    Go To    https://stackoverflow.com

引用
https://stackoverflow.com/questions/38226102/robot-framework-cannot-open-chrome-from-existing-chrome-profile

カスタム動作を作ってみる

  1. +新規カテゴリ作成ボタン押下して任意の値を入れて作成
    image.png

  2. +カスタム動作を追加ボタンを押下
    image.png

  3. 動作名フォーマットを任意で記載

フォーマットは手順になる。
設定値にURL入れて汎用的に使用したいので「設定値」をフォーマットに含める

image.png

4.必要そうなやつだけコピペ

${value}=「設定値」

${options}=	 Evaluate	sys.modules['selenium.webdriver'].ChromeOptions()	sys,selenium.webdriver
Call Method	${options}	add_argument	--user-data-dir\=/Users/myName/AppData/Local/Google/Chrome/User Data
Create WebDriver	Chrome	chrome_options=${options}	
Go To	${value}		

image.png

5.--user-data-dirを書き換える

chrome://version/とChromeで検索するとプロフィール パスが表示されるのでコピペ
image.png

--user-data-dir\=/Users/myName/AppData/Local/Google/Chrome/User Data
↓置き換え
--user-data-dir\=C:\\Users\\[USERNAME]\\AppData\\Local\\Google\\Chrome\\User Data

・User Dataまでのパスを記載する
・WindowsPCの場合は\\区切り
・MacPCの場合は/区切り

image.png

6.SeleniumLibraryを追加する

Create WebDriverというキーワードはSeleniumLibraryを使用している為、追加が必要。
SeleniumLibrary自体はT-DASH標準ライブラリらしく、pip install自体は不要だった

https://robotframework.org/SeleniumLibrary/SeleniumLibrary.html
image.png
image.png

7.保存ボタンを押下する

image.png

8.作成したカスタム動作をテスト手順で使用する
 Qiita公開用にGithubでログイン状態が継続されるか確認する形にしています。
image.png

9.テスト実行するとログインセッション状態を維持してChromeブラウザが起動されます

image.png

注意事項

注意点①

Chromeのプロファイル情報を基に起動するため、Chromeを起動しているとテスト実行時にエラーになります。
T-DASHをEdgeで開いて実行お願いします。

実行時に下記エラーが発生する場合はバックグラウンドでChromeのプロセスが残っていて動かない。
image.png

タスクマネージャーよりバックグラウンドのChromeプロセスを終了させていってください
image.png

使用した環境・バージョン

OS : Windows10 64bit
ブラウザ:Chrome 103.0.5060.134
T-DASH: 1.3.000

参考URL

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0