現在、Pythonを使用し下記コードを実行しているのですが、Pythonで実行をすると正しく動くのですが、exe化するとはじめの1回目が正しく動作しません。おそらくchromeのwebドライバーのダウンロードの部分の動作がちゃんと出来ていないのではないかと思いますが、exe化した時にも1回目から動くようにするにはどのようなコードに書き直せばよろしいでしょうか?
ど素人ながらの予測では、Pythonだと自動で現在の自分のPCにインストールされているchromeにあったwebドライバーがインストールされ、コードが正しく動作している。
exe化すると、その部分が正しく動作していない、と予想しております。
Pythonで一度実行してから、再度exeの方を実行すると動作する。
ご教示願います(コードは一部隠しております。)
from selenium import webdriver
from selenium.webdriver.support.ui import Select
from webdriver_manager.chrome import ChromeDriverManager
from time import sleep
import subprocess
import os
import shutil
import glob
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.implicitly_wait(10)
url = "【隠しております】"
browser.get(url)
browser.implicitly_wait(20)
overview = browser.find_element_by_id("SelDep")
select = Select(overview)
select.select_by_index(5)
sleep(0.5)
overview = browser.find_element_by_id("SelOgnzDV")
select = Select(overview)
select.select_by_index(1)
sleep(0.5)
overview = browser.find_element_by_id("SelOgnzCD")
overview.send_keys("711:FL")
sleep(0.5)
overview = browser.find_element_by_id("btn_ver3")
overview.click()
browser.implicitly_wait(20)
overview = browser.find_element_by_name("submitbutton")
overview.click()
sleep(2)
browser.quit()
path = r"【隠しております】"
subprocess.Popen(['explorer', path], shell=True)
list_of_files = glob.glob('【隠しております】')
latest_file = max(list_of_files, key=os.path.getctime)
shutil.copyfile(latest_file, "【隠しております】")
No.1ベストアンサー
- 回答日時:
質問にはexe化をどんなソフトでやっているか書かれてないですが、主流のPyInstallerですかね。
あれの作るexeってpython実行環境とスクリプトをまとめてアーカイブしたもので、実行時にはテンポラリに展開して、そこでスクリプトが動くという作りだったと思います。__file__でスクリプトのパスを得ようとしても正しく動かないとか。一方でwebドライバはスクリプトと同じフォルダにダウンロードされると思うので、1回目だけ上手く動かないのだとダウンロードしたファイルがpythonから見えるのに遅延があるか、python.exeを立ち上げ直さないと見えないとか。
webドライバのダウンロード先を制御できるなら外部の固定的なパスにしてそこを参照するとか。どこにするのか難しいですけど。
なお正しく動作しないの具体的な内容を書くともう少し回答の反応が良いかもしれません。例外が発生するようならその内容を。それとも正常に終了するけど結果が得られないのかな。
まずはお礼が大変遅くなり申し訳ございません。
またこのようなわかり辛いご質問にご回答頂きありがとうございます。
結局は自分のコードが原因でした。
お騒がせ致しました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・チョコミントアイス
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・あなたの習慣について教えてください!!
- ・ハマっている「お菓子」を教えて!
- ・高校三年生の合唱祭で何を歌いましたか?
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・家の中でのこだわりスペースはどこですか?
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excel vbaから実行するexe実行...
-
「読み込み違反」が起きたとき...
-
ActiveX → VB を起動するとCre...
-
VBで「ファイル名を指定して実...
-
VBコンソールアプリケーション...
-
外部exe呼び出しの方法 ShellEx...
-
Visual Studio 「AnyCpu」について
-
Windows PowerShellでC言語を実...
-
C++初心者です。 debug asserti...
-
vba 時間の引き算 例えば 15:00...
-
VBAでOutlookを終了させたい Ex...
-
Designer.vbは直接コードをいじ...
-
ManagementClassが見つからない。
-
VB6上から印刷ダイアログを表示...
-
VBAでIEが起動しているか...
-
印刷ダイアログを表示させない方法
-
VB.NETでSPREADの設定方法
-
VB2008→VB2010でエラーが出てま...
-
印刷ダイアログを表示させたくない
-
EXCELファイルの複数ダウンロー...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「読み込み違反」が起きたとき...
-
Visual Studio 「AnyCpu」について
-
Windows PowerShellでC言語を実...
-
excel vbaから実行するexe実行...
-
C++初心者です。 debug asserti...
-
VB6.0 exe作成時に実行時エラー...
-
Eclipse CDT MinGWによるC言語
-
ActiveDirectoryから値を取得
-
外部exe呼び出しの方法 ShellEx...
-
Format 関数のバグ?
-
C#VB、exeに埋め込んだexeの実行
-
JP1/File Transmission Server/...
-
mscorlib.dllの初回例外について
-
androidで.exeを実行できますか?
-
VB.NetのWinsockについて
-
VBAでコマンドプロンプトを呼び...
-
実行ファイル(.exe)が別のPC...
-
JP1から起動したexeでhttpリク...
-
ActiveX → VB を起動するとCre...
-
shell関数には二重引用符を渡せ...
おすすめ情報