次の方法で共有


selenium+VBA すでに起動しているedgeを制御する

質問

2021年2月22日月曜日 7:06

先日はedgeドライバーの配置についてのご回答ありがとうございます

有益な回答だったので、申し訳ありませんが連続質問させていただきます

vba ; selenium ; crhomeにて 先にブラウザを起動させておき [ログイン]処理と、[情報取得]の部分を分けて構築することができました

function Login as string

'Chromeを単体で起動
'Shell "C:\Program Files\Google\Chrome\Application\chrome.exe --remote-debugging-port=9222 --user-data-dir=C:\Temp_ForChrome"

Dim Driver As New Selenium.ChromeDriver

'起動済のCromeに接続
driver.SetCapability "debuggerAddress", "127.0.0.1:9222"
driver.start

objSL.FindElementByName("login").Click '-->ログイン処理

end function

function GetValue as string

Dim Driver As New Selenium.ChromeDriver

'起動済のCromeに接続
objSL.SetCapability "debuggerAddress", "127.0.0.1:9222"
objSL.start

'検索ボタンをクリック
objSL.FindElementByName("search").Click
end function

これはうまくいっているのですが(問題があればご指摘いただけると幸いです)

edgeにするとうまく動作しません

'Edge(ver88)を単体で起動

Shell "C:\Program Files (x86)\Microsoft\Edge\Application\msedge  --remote-debugging-port=9222 --user-data-dir=C:\Temp_ForEdge"

Dim Driver As New Selenium.EdgeDriver

'起動済のCromeに接続
driver.SetCapability "debuggerAddress", "127.0.0.1:9222"
driver.start  '==>ここで新規edgeウィンドウが起動する

edgeでは無理なのでしょうか

よろしくお願いします

すべての返信 (2)

2021年2月22日月曜日 11:15 ✅回答済み

特に調べていませんが、

https://github.com/florentbr/SeleniumBasic/releases/tag/v2.0.9.0

SeleniumBasicは最終更新日が2016年とかなってますし、ChromiumなEdgeはまともにサポートされていないのではないでしょうか。

// むしろそれなりに動くと聞いてびっくり。

VBA / Office / SeleniumBasicでは試していませんが、C# / .NET Framework 4.8 / Microsoft.Edge.SeleniumTool を使ってChromiumなEdgeの既存インスタンスにアタッチできることは確認したので、SeleniumBasicの制限かと思われます。

// なおMicrosoft.Edge.SeleniumToolはVBAから使えるライブラリではありません。


2021年2月24日水曜日 5:38

Hongliangさん。お返事ありがとうございます。

そうですか、やっぱりだめなのですね