【发布时间】:2017-08-28 11:05:34
【问题描述】:
我有一个类似于 django 管理表单的表单,用户可以在其中创建对象并使用弹出窗口中的单独表单将相关模型附加到它。
在我的表单中,用户可以将文件附加到模型。他们点击加号按钮...
现在,我想使用 selenium 测试这种行为。但是,当表单提交后弹出窗口关闭时,选择输入仍然为空。
这是我在测试中附加文件的方式:
# 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。这些是我创建的有效的工作方法。
【问题讨论】:
-
检查是否只有一个输入框:
print(len(self.browser.find_elements_by_css_selector( "input[name='_file']"))) -
文件上传在 selenium 中有点棘手。使用 send_keys 也是尝试使用机器人框架或尝试模拟操作系统的键盘控制的一种方法。尝试记录 selenium IDE/Builder,看看 selenium 是如何处理它的。
-
我刚查了一下,只有一个输入框。
-
你做了哪些调试,发现了什么?在提交单击行上放置一个断点并运行脚本。一旦中断,请稍等...文件名是否正确显示?如果是这样,则可能是时间问题,您将不得不等待。
-
查看开发者工具控制台在 Selenium 浏览器提交时是否显示问题或错误。它可能与页面有关