方式一:
文件上传是通过input type=file 实现的,可以找到该元素,将上传文件绝对路径输入,即可完成上传
代码如下:
path = "G:\\procedure\\python\\shopSpider\\publish\\" + name
time.sleep(3)
self.driver.find_element_by_xpath('//*[@id="drop-zoom"]/div[2]/div[3]/input').send_keys(path)
time.sleep(2)
如果是编辑器一般会放到iframe里面需要使用如下代码切换windows再执行以上代码:
iframes = self.browser.find_elements_by_tag_name("iframe")
iframe = None
for it in iframes:
if 'select.htm' in it.get_attribute("src"):
iframe = it
self.driver.switch_to.frame(iframe)
方式二:
找不到input可以按照手动上传流程是,使用pywinauto模拟,页面点击打开上传窗口后使用send_key 直接输入文件 绝对路径 然后 enter 使用代码如下:
search = self.browser.find_elements_by_css_selector('#uploadBtn')
search[0].click()
time.sleep(3)
#pywinauto的用法
path ="D:\\code\\shopSpider\\publish\\" +name
send_keys(path)
time.sleep(2)
send_keys('{VK_RETURN}')