Python WebDriver - 无法使用send_keys将文件上传到站点。 API将激活文件选择窗口

时间:2014-01-14 02:15:11

标签: python selenium

测试场景: 1.发布到网站(https://app.box.com/files) 2.登录网站,页面将重定向到所有文件页面。 3.单击“上传”按钮。 ----点击“上传文件”和“上传文件夹”选项后出现。 4.单击“上传文件”---单击窗口文件选择窗口后显示。

然后上传文件HTML代码:

<ul id="ui-id-1" class="ui-menu ui-widget ui-widget-content ui-corner-all"            style="position: absolute; top: 34px; left: 0.5px; display: block;" data-type="upload-menu" role="menu" tabindex="0" aria-activedescendant="ui-id-3">
<li class="ui-menu-item" data-type="upload-files-option" role="presentation" style="position: relative;" tabindex="-1">
<a id="ui-id-2" class="ui-corner-all" href="#" tabindex="-1" role="menuitem">Upload Files</a>
</li>

我使用以下代码尝试上传文件。

self.driver = webdriver.Firefox()
sDataFile = "D:\\TestData\\Test.txt"
self.driver.find_element_by_xpath("//a[@id='ui-id-2']").send_keys(sDataFile)

当我运行此代码时,文件无法成功上传,webdriver将激活Windows文件选择对话框,但文件无法上传。如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

当您执行以下行时,请确保选择send_keys的输入组件。

self.driver.find_element_by_xpath

即。在HTML中你将有一个如下组件。确保使用xpath选择下面的元素,然后应用send_keys

<input type="file" />