上传图像python selenium javascript

上传图像python selenium javascript,javascript,python,selenium,upload,webdriver,Javascript,Python,Selenium,Upload,Webdriver,我需要你的帮助上传图像与硒python 我有一张表格 <div class="none upload_no_autosubmit" id="upload_image_base_pack"> <div class="labelform inputfile">Choose</div> <div

我需要你的帮助上传图像与硒python 我有一张表格

                            <div class="none upload_no_autosubmit" id="upload_image_base_pack">
                            <div class="labelform inputfile">Choose</div>
                            <div class="lbcinputfile">
                            <input type="file" name="image0" id="image0" class="input_file">
                            </div> 
                            <div class="clear"></div>
                            <div class="lbcinputfile_submit">
                            <input type="submit" class="button-upload" value="add" onclick="return disabled_onsubmit_photosupCheck('#image0', 'upload_image_base_pack');">
                            </div>
                            <div class="clear"></div>
                            </div>
                            <div class="message info right no_autosubmit" id="message_upload_image_base_pack">

使用webdriver方法查找正确的输入元素,输入文件名,然后单击submit按钮。像这样:

input_element = driver.find_element_by_css_selector("input[name='image0']")
input_element.send_keys("c:/1bo.jpg")
driver.find_element_by_css_selector("input[type='submit']").click()
但是:由于该站点使用文件选择器,并且您无法通过Selenium与该对话框交互(据我所知),因此您必须使用javascript设置输入值。因此,类似这样的方法应该有效:

driver.execute_script('document.querySelector("#image0").setAttribute("value", "c:/1bo.jpg")')
driver.find_element_by_css_selector("input[type='submit']").click()
尝试以下方法:

def test_TC1(self):
        driver = self.driver
        driver.find_element_by_xpath("//div/form/table/tbody/tr[2]/td[2]/input").clear()
        driver.find_element_by_xpath("//div/form/table/tbody/tr[2]/td[2]/input").send_keys("C:\\FILE.xml")

根据我的经验,你不需要点击,只需要发送密钥。

为什么不对文件上传控件使用
。发送密钥
?你能解释一下吗?嗨,我试过了,但没用。你有电子邮件吗?把网站的链接发给你当然可以。但是不,对不起,我不是你的编程导师。编辑您的问题,以包含有关您尝试过的内容以及失败原因的信息。谢谢您的帮助。我尝试使用您的代码,但python告诉我没有元素文档。我不理解document.querySelector?最后一行是javascript。您需要通过
驱动程序运行该脚本。执行脚本实际上我的javascript中有一个错误。由于复制粘贴错误,出现了第三个参数
setAttribute
应该只有两个参数。
def test_TC1(self):
        driver = self.driver
        driver.find_element_by_xpath("//div/form/table/tbody/tr[2]/td[2]/input").clear()
        driver.find_element_by_xpath("//div/form/table/tbody/tr[2]/td[2]/input").send_keys("C:\\FILE.xml")