我正在尝试使用Selenium(在Django / Python上)创建功能测试,但我的javascript文件验证会出现错误。我的网站基本上将csv文件作为输入,然后呈现一堆图形以不同方式可视化csv数据。我正在使用jQuery Validation plugin通过1)扩展名为.csv来检查它是csv文件,以及2)mime-type是text /*.
当我上传.csv文件时,这会手动验证,但是当我尝试在Selenium中上传相同的文件时,我收到了一个mime类型的错误。有没有办法“设置”文件输入的mime类型,或者我是否应该这样做?我在Selenium中遗漏了一些关于文件上传的内容吗?我知道我不应该单击文件按钮并使用send_keys()发送完整路径。
我在SO或Google上没有发现任何类似的问题。几乎每个Selenium mime类型的问题都涉及在测试期间下载文件,而不是上传文件。
感谢您的帮助!
我的Selenium测试代码:
file_input = self.browser.find_element_by_id('grade_file')
file_input.send_keys('/<FULLPATH>/grades_deid.csv')
grade_form = self.browser.find_element_by_tag_name('form')
grade_form.submit()
我在测试期间得到的错误:
我的jQuery验证码:
$(document).ready(function() {
'use strict';
// Validate the file input so only csv files allowed
$('#grade_form').validate({
rules: {
grade_file: {
required: true,
extension: "csv",
accept: "text/*"
}
}
});
});
更新: 所以在玩了一些后,我认为这是由于Chromedriver(不是真正的Chrome)如何处理文件mimetypes ...我的csv文件与Firefox Selenium webdriver一起正常工作。 Chromedriver和Chrome使用不同的mimetype来源吗?它们应该是一样的吗?