Selenium Basic から Edge を使用したときの「Webエクスペリエンスのカスタマイズ」を非表示にする
Selenium にて、 EdgeWebDriver を使用して、Edge(chrome)を操作したとき、「Webエクスペリエンスのカスタマイズ」のウインドウが表示される現象が起きた。
【現象の整理】
・通常に(Seleniumではなく手動で)Edgeを起動したときは、初回のみ表示される
・Selenium から起動したときは、毎回表示される
・表示されるページが、意図しないページになることがある。
【問題】
・SendKeys などを使うときに問題となる。
・Selenium にて、Get しても指定したページが開かないことがある。
【調査】
調べてみると以下の情報があった。
・Selenium では、ユーザーのプロファイルは、起動毎に作成・廃棄される。
・Selenium の起動時にユーザープロファイルを指定する方法がある。
通常起動時に、2回目以降表示されないため、ユーザープロファイルが関係していると推理。
Selenium からの起動時にユーザープロファイルを指定することで、ユーザープロファイルが保持されるようになり、「Webエクスペリエンスのカスタマイズ」が表示されなくなるか、検証することとした。
【検証】
ユーザープロファイルを指定して起動。
初回起動時に「Webエクス~」が表示されるため確認。
2回目以降は表示されないことを確認した。
Dim driver As New Selenium.EdgeDriver
Dim elmDoc As Selenium.WebElement
driver.AddArgument "--user-data-dir=任意のフォルダ"
driver.AddArgument "--profile-directory=任意のフォルダ2"
With driver
.Start
.Get "http://任意のアドレス"
End With
なお、python でも同様に「Webエクスペリエンス~」の表示を回避できることを確認した。
Python の場合、Selenium4で検証。(Selenium3では、add_argumentを使用するために別のパッケージが必要になる)
from selenium import webdriver
from selenium.webdriver.edge.options import Options
from selenium.webdriver.edge.service import Service
EdgeOptions = Options()
EdgeOptions.use_chromium = True
EdgeOptions.add_argument(r'--user-data-dir=任意のフォルダ')
EdgeOptions.add_argument(r"--profile-directory=任意のフォルダ2")
service = Service( executable_path=r'msedgedriver.exe')
driver = webdriver.Edge( service=service , options=EdgeOptions)
コメント
コメントを投稿