前提・実現したいこと
pythonのセレニウムを使って
ワードプレスのプラグインであるwp all importの
アップロードを自動化させるところで躓いています。
実現したいことは、
アップロードボタンを押す
↓
ファイルダイアログが開かれる
↓
テストファイル.csvのファイルをアップロードする
を実現したいです。
●ファイルダイアログを開かなければならない理由
・inputタグがhiddenで隠れており、
javascriptにて隠れているので、クリックする必要がある。
→OSに元々入っているファイルダイアログが起動する
→ファイルダイアログを操作したい
・直接ルートディレクトリからのパスを入れるとエラーが起きる
→ワードプレスに保存したパスが入っているので、ファイルのルートディレクトリを一時ワードプレスに保存する必要がある。
以上により、
セレニウムでのクリックにて表示したファイルダイアログを
操作しなければならないと思っております。
色々と操作しているのですが、
なかなかうまくいかないのでご教授お願い致します。
今回のアップロードファイルのパスは
/Users/hoge/Desktop/python/mugennowa/テストファイル.csv
です。
試したこと
Tkinterを使ってアップロードを試しました。
初めに使用したときはアップロードができました。
ただ、Tkのサブウィンドウが出現したため
消す方法を試していくと
コード内容が変わったせいなのかアップロードできなくなりました。。。
何度か書き直ししたり、
過去に見ていたの記事を参考にして、
コードを書いてみたけどだめでした。
python
1from tkinter import filedialog 2 3typ = [('テストファイル','*.csv')] 4dir = '/Users/hoge/Desktop/python/mugennowa/' 5fle = filedialog.askopenfilename(filetypes = typ, initialdir = dir)
requestsを使ってみました。
でもこれは違うと思っております。。。
そもそもファイルパスが不明なので
requestsでは反応しないはず。。。
案の定何も反応せず。。。
ポスト送信する場所調べてみる
→見つからず。。。
python
1import requests 2 3url = 'https://blog.fantom.co.jp/2021/03/14/upload-file-using-python/' 4 5image = '/Users/hoge/Desktop/python/mugennowa/テストファイル.csv' 6data = open(image, 'rb') 7file = {'file': data} 8 9res = requests.post(url, files=file)
それ以外だとpywinautoを使うと
ダイアログを操作出来るという記事を見つけました。
ですが、当方Macユーザーなためpywinautoが使えず。。。
現在、お手上げ状態ですので、
お助けお願いします。
あなたの回答
tips
プレビュー