html部分如下所示:
...
<form action="/upload/select-single/" method="post" enctype="multipart/form-data">
<input type="hidden" name="csrfmiddlewaretoken" value="U3Uh3EAYWXaWEiNaWC3zcCQutQe8hGM53u4BTx810o08t1GwOfIJI2ayHCFQFySw">
<p>
<label for="id_file_field">File field:</label>
<input id="id_file_field" name="file_field" type="file" multiple="" required="">
</p>
<input id="submit" type="submit" value="submit">
</form>
...
像这样的硒测试:
...
btn_choose_file = self.browser.find_element_by_id("id_file_field")
# write file path to field
# to check that I really selected the field, I tried btn_choose_file.click() -> and it works
btn_choose_file.send_keys('/path/to/file') # -> THIS is the line which seems to cause the problem
# click submit
self.browser.find_element_by_id("submit").click()
...
不幸的是,当执行测试时会出现此错误
selenium.common.exceptions.WebDriverException:消息:找不到文件:/ path / to / file
这是由于文件路径通过btn_choose_file.send_keys('/path/to/file')
注意:真正的&#39; / path / to / file&#39;是以下
任何建议可能是什么原因?
更新
将Firefox从版本55.0.2降级到54.0.1&#34;已修复&#34;问题。
见 - &gt; https://stackoverflow.com/a/45753912/420953
答案 0 :(得分:2)
解决此问题的一种方法是用“\”(python中的“\\”)替换文件名中的所有“/”出现。
至少在Windows上这项工作。
答案 1 :(得分:1)
此错误是由于Firefox更新到版本55.0.2(2天前自动发生,因为我已配置自动更新)
以下geckodriver问题指出了我的方向
然后我按照文章
中的说明将我的Firefox版本降级为54.0.1有了这个,硒测试再次运行。
答案 2 :(得分:1)
在我安装并使用chromewebdriver这个bug之后。像firefox驱动程序一样工作,我的所有测试运行顺利。我建议你尝试一下,至少它对我来说就像一个魅力