私はdjangoの管理フォームに似たフォームを用意しています。このフォームでは、オブジェクトを作成し、関連するモデルをポップアップウィンドウの別々のフォームを使って関連付けることができます。Selenium:djangoフォームのテスト、アップロードしないファイル
私のフォームでは、ユーザーはモデルにファイルを添付できます。ファイルのアップロード後
とフォームを送信、新しいファイルが作成され、選択入力で表示されます:
彼は
と、このようなポップアップフォームが現れる...プラスボタンでクリック
ここでは、この動作をセレンを使用してテストします。ただし、フォーム送信後にポップアップが閉じると、選択入力はまだ空です。
これは私が私のテストでファイルを添付する方法である:
# select plus btn
plus_btn = self.browser.find_element_by_css_selector(
".related-widget-wrapper select#id_files + a")
plus_btn.click()
self.switch_to_popup()
file_input = self.browser.find_element_by_css_selector(
"input[name='_file']")
file_input.send_keys(os.getcwd() + "/test.txt")
self.browser.find_element_by_css_selector(
"input[type='submit']").click()
self.switch_to_main()
PS: 問題がself.switch_to_popupとself.switch_to_mainではありません。これらは私が作成した有効な作業方法です。
チェックのみ1つの入力フィールドがあるかどうか:: 'プリント(LEN(self.browser.find_elements_by_css_selector(「入力[名前= '_ファイルは私がやっていることは、私はこのように、値を格納するフィールドを待っています'] ")))' – Andersson
ファイルのアップロードは、セレンの中で少しトリッキーです。 send_keysを使用することも、ロボットのフレームワークを使用したり、OSのキーボードコントロールをシミュレートしたりする1つの方法です。セレンIDE/Builderを記録して、セレンがどのように処理しているかを確認してください。 –
私はちょうどチェックしました、ただ1つの入力フィールドがあります。 –