1

我需要你的帮助来用 selenium 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">

我在 python 中使用 selenium,我想用这个上传图像文件

driver.execute_script("return disabled_onsubmit_photosupCheck('c:/1bo.jpg', 'upload_image_base_pack')")

请帮助tks


不工作

driver.execute_script("document.querySelector('#image0').setAttribute('value', 'c:/1bo.jpg', 'upload_image_base_pack')")
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()
4

2 回答 2

1

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

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()
于 2013-10-05T11:38:47.327 回答
1

尝试类似:

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")

根据我的经验,您不需要点击,而只需要send_keys

于 2014-05-12T17:34:20.927 回答