none
Seleniumドライバーのパス RRS feed

  • 質問

  • VBAからseleniumを使って、ブラウザの制御をしています。

    Edge,Chrome両方とも、ブラウザがバージョンアップしたらWEBドライバのバージョンも合わせる必要があります

    ユーザーにWEBドライバのバージョンアップ版を配布する必要があるのですが

    任意のフォルダにドライバを置く必要があります

    pythonでは、driver = webdriver.Chorme(executable_path="D:\webdriver\chromedriver.exe") という構文で

    実現できるようですが、

    これをVBAで実現できないか悩んでいます

    driver.setbinary("D:\webdriver\Chromedriver.exe") ではだめでした。


    2021年2月19日 12:23

回答

  • VBAでSeleniumということですが、お使いのライブラリはSeleniumbasicということでいいでしょうか。

    ソースが公開されているようなのでざっと読んでみましたが、ドライバーのexeのパスを実行時に変更することはできなさそうです。

    コード設計上どうしてもできないという理由もなさそうなので、製作者は必要性を感じなかったのでしょう。どのみちSelenium.dllを置く必要があり、インストールされるのは一般ユーザでも読み書きできる場所なのですから、ドライバーのexeはそれと同じ場所で十分だろうというのは私も同じ感想を持ちます。

    • 回答としてマーク bugsy_jp 2021年2月22日 5:49
    2021年2月20日 9:37

すべての返信

  • すみません。追加です、

    pathを通す方法もやってみたのですが

    path に d:\webdriver を追加してもだめでした。


    2021年2月19日 12:26
  • bugsy_jpさん、おはようございます。

    pythonもseleniumも良く分かりませんのでお尋ねしますが、例えば「FileCopy "E:\chromedriver.exe","D:\chromedriver.exe " 」ではダメなのでしょうか?(この場合、予め最新版をダウンロードしてEルートドライブに保存しておくというイメージです。)

    直接chromeドライバをウェブサイトからダウンロードするとなると、それなりに「ウェブサイトにアクセスして目的のファイルをダウンロードする」コードを書き込んで行くしかないように思います。結構力仕事になりますし(;小生にとっては)、そのウェブサイトの作りが変わるとうまく動かなくなって修正が必要となる場合もあります。

    もっとスマートにできないか、というお尋ねかとは思いますが、残念ながら小生には知識がありません。





    2021年2月20日 1:27
  • VBAでSeleniumということですが、お使いのライブラリはSeleniumbasicということでいいでしょうか。

    ソースが公開されているようなのでざっと読んでみましたが、ドライバーのexeのパスを実行時に変更することはできなさそうです。

    コード設計上どうしてもできないという理由もなさそうなので、製作者は必要性を感じなかったのでしょう。どのみちSelenium.dllを置く必要があり、インストールされるのは一般ユーザでも読み書きできる場所なのですから、ドライバーのexeはそれと同じ場所で十分だろうというのは私も同じ感想を持ちます。

    • 回答としてマーク bugsy_jp 2021年2月22日 5:49
    2021年2月20日 9:37
  • KokemomoYamamomo様 ,Hongliang様 お返事ありがとうございます。

    ドライバの位置指定はpythonではできるようなので、vbでできないのかなと思っていましたがやはりダメなのですね。

    そもそも、seleniumbasicはデフォルトのインストールオプションがユーザー環境のフォルダになっているので、ブラウザアップグレード時に全端末の全ユーザーのドライバ更新???というところから始まっていて

    ならば、全ユーザー共通のc:\windows\システムフォルダにしたということがあります。

    c:\セレニウム専用フォルダにインストールすれば、ネットワーク共有で各端末のドライバ更新は楽になります。

    ありがとうございました。

    2021年2月22日 5:49