Selenium & Edge & Python

Selenium で Edge を動かそうとして詰まりを解消したメモ

自社研修で Selenium で Edge を動かすための環境構築にちょっと苦労したのでメモを残す。

Edge のバージョンが 17 までと、18 以降で手順が違うぞ?!問題

  1. Microsoft の以下のページから、自身の Edge のバージョンとあった webdriver.exe を落とすように言われた…
    developer.microsoft.com

f:id:mktk0808:20190215230107p:plain
Edgeバージョンとwebdriver

('ω')
18はないでござる...

当然古いバージョンではエラーになってしまう...

調べてみたら、

WebDriverの改善 WebDriver を利用した Microsoft Edge での自動テストがより簡単になりました。

これまで WebDriver を使用して自動テストを行う場合、ダウンロード用の Web サイトに赴き、テストする Edge のバージョンに合わせて個別のパッケージを別途入手する必要がありましたが今回のアップデートにより Windows Feature on Demand(FOD)、つまり Windows 10 の [設定] - [アプリと機能] の中にある [オプション機能の管理]からインストールして使うことができるようになりました。しかも Windows Update により WebDriver のバイナリも自動的に更新されます。

Windows 10 October 2018 Update に搭載されたMicrosoft Edge(EdgeHTML 18)の新機能 – monoe's blog

とあったので、その通りに Microsoft Webdriver をインストールしてみました。

引っかかりポイント 2つ目

もともとは、以下のように webdriver.exe と同じディレクトリに python のファイルを置いて実行していたのですが、当然ファイルは無いのでエラーになります。古いファイルを実行しても、もちろんエラーになります。

#Edgeを操作
driver = webdriver.Edge(executable_path=".\\MicrosoftWebDriver.exe")

困ったなあ…と思ってたら、ぴんときました。
さっき落とした webdriver がこのPCのどこかにいるんじゃない?と。

調べてみたら、c:\windows\system32 の下にいました。 そこで、今度は

driver = webdriver.Edge(executable_path="C:\Windows\System32\MicrosoftWebDriver.exe")

こうしてみたら動くようになったのですが、先輩に確認したところ、そもそも環境変数が通っているところなら、executable_path はいらん!ということで、

driver = webdriver.Edge()

これで動くことが確認できました。ちゃんちゃん。