私はアップロードするテキストファイルに何かをするエンジンと通信するウェブクライアントをテストしています。基本的には、アップロードするファイルを選択します。このファイルがアップロードされると、私はstartを押すことができ、エンジンはそのことを行い、結果を返します。私はPythonでセレンを使ってフロントエンドをテストしようとしています。このWebクライアントは、zipまたはtxtファイルを受け入れます。このWebクライアントの開発者は、zipやテキスト以外のファイルの種類がアップロードされたとき、それはここではそうセレンのpythonで認識されないファイルタイプ
File type "audio/wav" is not supported: Must be one of "text/plain", "application/zip", "application/zip-compressed", "application/x-zip-compressed".
のようなエラーを与えるだろう、それはように作られた、私はWAVオーディオファイルをアップロードしようとしました。 zipファイルを手動でアップロードしようとすると、期待どおりに動作します。しかし、私はセレンで同じファイルを使用して、この同じプロセスをしようとすると、それはもはや、ファイルの種類を認識し、私は、このエラーが発生します
File type "" is not supported: Must be one of "text/plain", "application/zip", "application/zip-compressed", "application/x-zip-compressed".
ので、ファイルの種類が認識されないです。ここで私は、ファイルをアップロードするために使用していますものです:
choose = self.driver.find_element_by_id("chooseButton")
time.sleep(1)
#clicks to open upload window
choose.click()
time.sleep(1)
#ZIp file with other zips
pyautogui.typewrite("C:\\Transcriber\\Framework\\test\\audio\\Nested.zip")
time.sleep(1)
pyautogui.press('enter')
私は、アップロードボタンをクリックしたときにポップアップするので、私は私のキーボードを自動化していたかのように、それはだ、アップロードウィンドウを操作するためpyautoguiを使用しています。 time.sleepは、次のアクションが開始される前にアクションが終了するようなアクション間に十分な時間が与えられるようにしています。
マイジップは、通常のzipファイルです。セレンで実行すると、上記のエラーが出ました。誰もが問題が何であるか知っていますか?これはPythonの問題ですか?前もって感謝します。
編集:この問題は、テストケース内のzipファイルをtxtファイルに置き換えると、zipファイルをアップロードしようとしたときにのみ発生します。
Edit2:テストケースが終了した後、ブラウザを開いたままにしておくと、手動でアップロードしようとしてもエラーが発生します。これは、セレンによって生成されたブラウザインスタンスでのみ発生するようです。それ以外の場合は、私自身で新しいブラウザを開くと、zipをアップロードしても問題ありません。
アップロードするファイルを選択すると、あなたはマウスで選択するか、またはあなたがパスを入力しますか? pyautoguiのように入力してEnterキーを押すとどうなりますか?おそらく名前がピックアップされておらず、空のファイル名をアップローダに渡そうとしているため、「ファイルタイプ」は「サポートされていません」というエラーです。 – tarikki
上記の私のコードでは、pyautoguiを使用して、アップロードウィンドウがポップアップするときに制御がなくなるため、手動でキーを入力する必要があります。テストを監視するときにパスが完了していることがわかります。これは、Enterキーを押す前に印刷が完了したことを確認するために1秒間の一時停止があるためです。私は手動テストで正確な経路を試して、それが動作します。もちろん私の手動テストでは、二重バックスラッシュを取り除かなければならなかった。 – Ted