Seleniumで起動済みのChromeを操作したい

Seleniumで起動済みのChromeを操作したいです。

PCソフトでトークンの更新が必要なことがあるのですが、常駐しているソフトでいつ更新されるかわからないためトークンの入力を自動化したいと思っています。

PCソフト上でリンクをクリックするとブラウザが起動し認証後にトークンが発行され、それを入力することで引き続きソフトが使えるようになります。

表示されているURLは変わらないのですが、リダイレクト処理が行われていてそのURLをブラウザに直接入力するとページが開きません。

そのためソフトからクリックして開かれたChromeを操作したいということです。

起動済みのブラウザの操作について調べると見つかるのは自分が起動したブラウザについてばかりで、ソフトで開かれたブラウザの操作については見つけられませんでした。

以下はコマンドラインでポートを指定してChromeを起動し、IPアドレスを特定し操作したいブラウザを取得するプログラムです。

このように自分で起動するものについてはコマンドラインオプションを書き換えることで取得することはできました。

reExecute関数は正規表現で文字列からIPアドレスを取得する処理を行っています。

コマンドラインオプションを付けられずに起動したブラウザの操作は不可能でしょうか。

回答よろしくお願いいたします。

UWSC

DOSCMD("<#DBL>C:\Program Files (x86)\Google\Chrome\Application\chrome.exe<#DBL> -remote-debugging-port=9222 --user-data-dir=C:\Users\akita\AppData\Local\Google\Chrome\User Data", TRUE) DIM port = "9222" // IPアドレスが取得できるまで繰り返し実行 REPEAT DIM str = DOSCMD("netstat -nao | find <#DBL>:" + port + "<#DBL>") SLEEP(0.100) UNTIL str <> "" DIM Matches = reExecute(str, "(([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])\.){3}([1-9]?[0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])") DIM ip = Matches.Item(0).Value PRINT "IPアドレス<#TAB>" + ip DIM driver = CREATEOLEOBJ("Selenium.WebDriver") WITH driver .SetCapability("debuggerAddress", ip + ":" + port) .Start("chrome") PRINT .Title PRINT .Url ENDWITH FUNCTION reExecute(str, Pattern, IgnoreCase = TRUE, Global = TRUE) DIM re = CREATEOLEOBJ("VBScript.RegExp") re.Pattern = Pattern re.IgnoreCase = IgnoreCase re.Global = Global RESULT = re.Execute(str) FEND

コメントを投稿

0 コメント