
現在、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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
excel vbaから実行するexe実行...
-
Visual Studio 「AnyCpu」について
-
「読み込み違反」が起きたとき...
-
JP1/File Transmission Server/...
-
VB6.0 exe作成時に実行時エラー...
-
CreateFile が ERROR_PATH_NOT_...
-
ActiveX → VB を起動するとCre...
-
C++初心者です。 debug asserti...
-
VB.NetのWinsockについて
-
mscorlib.dllの初回例外について
-
Matlabを実行しやすくする方法
-
Windows PowerShellでC言語を実...
-
意味不明の実行時エラーで困っ...
-
VB6で呼び出し元の情報を取得す...
-
ManagementClassが見つからない。
-
VB6(SP5)+OO4OでCreateObjectが...
-
Designer.vbは直接コードをいじ...
-
VB.NETで参照設定したDLLの修正...
-
2回以上PDFをコピーや印刷がで...
-
VS2005のセットアッププロジェ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
excel vbaから実行するexe実行...
-
Visual Studio 「AnyCpu」について
-
「読み込み違反」が起きたとき...
-
Windows PowerShellでC言語を実...
-
Format 関数のバグ?
-
C++初心者です。 debug asserti...
-
VB6.0 exe作成時に実行時エラー...
-
結果が見れない~
-
mscorlib.dllの初回例外について
-
C#VB、exeに埋め込んだexeの実行
-
一通ずつ処理したい(アウトル...
-
外部exe呼び出しの方法 ShellEx...
-
VB6 EXEとプログラムの違い
-
C言語に詳しい人に質問です。
-
ActiveDirectoryから値を取得
-
ActiveX → VB を起動するとCre...
-
JP1/File Transmission Server/...
-
ACCESSランタイムでエラー
-
MFCと.NETFramework
-
androidで.exeを実行できますか?
おすすめ情報