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)




コメント

このブログの人気の投稿

バーコードフォントを使用してCODE-128のバーコードを作成する

[VBScript]WiFiアダプタの無効化と有効化をスクリプトで実行する