zoukankan      html  css  js  c++  java
  • python3+selenium入门14-上传下载文件

    上传文件一种方式是通过定位input标签,然后使用send_keys()方法传入需要上传文件的路径。另一种是使用第三方插件去上传文件。下面看下imput标签的方式。工具可以自己查下。

    <!DOCTYPE html>
    <html>
    <head> 
    </head>
    <body>
    
    <form action="demo_form.php">
      <input type="file" name="pic" accept="image/*">
      <input type="submit">
    </form>
    
    </body>
    </html>

    将上面HTML代码复制到文本编辑器,然后保存成.htm文件。

    from selenium import webdriver
    dr = webdriver.Chrome()
    dr.maximize_window()
    dr.implicitly_wait(10)
    dr.get('file:///C:/Users/ms/Desktop/new%201.htm')
    dr.find_element_by_name('pic').send_keys('C:/Users/ms/Desktop/项目管理工具/项目管理工具缺陷统计.xlsx')

    一般能定位到input标签就可以使用这样的方式来上传文件。

    下载文件需要针对浏览器进行配置,或者使用第三方的插件。

    火狐浏览器

    from selenium import webdriver
    import os
    profile = webdriver.FirefoxProfile()
    profile.set_preference('browser.download.dir','D:workspace')
    profile.set_preference('browser.download.folderList',2)
    profile.set_preference('browser.download.manager.showWhenStarting', False)
    profile.set_preference('browser.helperApps.neverAsk.saveToDisk', 'text/x-python')
    
    dr = webdriver.Firefox(firefox_profile=profile)
    dr.maximize_window()
    dr.implicitly_wait(10)
    dr.get('http://tungwaiyip.info/software/HTMLTestRunner.html')
    dr.find_element_by_link_text('HTMLTestRunner.py').click()

    代码是下载了原生的HtmlTestRunner。

    browser.download.dir:指定下载路径,好像windows必须使用来当路径符

    browser.download.folderList:下载路径设置,0:下载到桌面、1:下载到浏览器默认地址、2:下载到指定路径

    browser.download.manager.showWhenStarting:是否显示下载器,貌似没啥用,True或False都没看见

    browser.helperApps.neverAsk.saveToDisk:设置Content-type,对应的类型将不再弹出保存提示框

    可以F12开发者工具看请求,在响应头可以看到对应的Content-type

    谷歌浏览器

    from selenium import webdriver
    
    option = webdriver.ChromeOptions()
    prefs = {'profile.default_content_settings.popups':0,'download.default_directory':'d:\'}
    option.add_experimental_option('prefs', prefs)
    
    dr = webdriver.Chrome(chrome_options=option)
    dr.maximize_window()
    dr.implicitly_wait(10)
    dr.get('http://tungwaiyip.info/software/HTMLTestRunner.html')
    dr.find_element_by_link_text('HTMLTestRunner.py').click()

    profile.default_content_settings.popups:设置0禁止弹出窗口

    download.default_directory:设置下载路径

  • 相关阅读:
    SVN的学习
    IIS 503 错误
    Windows系统CMD下常用命令
    Linux基础整理
    JavaEESSM框架配置文件
    JavaXML整理
    Java反射、反射练习整理
    Java网络通信协议、UDP、TCP类加载整理
    Java多线程、线程池和线程安全整理
    JavaProperties类、序列化流与反序列化流、打印流、commons-IO整理
  • 原文地址:https://www.cnblogs.com/myal/p/9396926.html
Copyright © 2011-2022 走看看