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:设置下载路径

  • 相关阅读:
    IO复用三种方式
    sql server如何通过pivot对数据进行行列转换(进阶)
    sql server排序规则冲突问题解决
    sql server如何通过pivot对数据进行行列转换
    sql server如何通过排序控制insert into ... select ... 语句的记录插入顺序
    sql server如何用不同语种语言显示报错的错误消息
    Python编程求解第1天1分钱之后每天两倍持续一个月的等比数列问题
    sql server临时删除/禁用非聚集索引并重新创建加回/启用的简便编程方法研究对比
    sql server通过临时存储过程实现使用参数添加文件组脚本复用
    sql server重建全库索引和更新全库统计信息通用脚本
  • 原文地址:https://www.cnblogs.com/myal/p/9396926.html
Copyright © 2011-2022 走看看