zoukankan      html  css  js  c++  java
  • selenium 文件上传

    一般分两个场景:一种是input标签,这种可以用selenium提供的send_keys()方法轻松解决;

    另外一种非input标签实现起来比较困难,可以借助autoit工具或者SendKeys第三方库。

    本篇以博客园的上传图片为案例,通过send_keys()方法解决文件上传问题

    一、识别上传按钮

    1.点开博客园编辑器里的图片上传按钮,弹出”上传本地图片”框。

    2.用firebug查看按钮属性,这种上传图片按钮有个很明显的标识,它是一个input标签,并且type属性的值为file。

    只要找到这两个标识,我们就可以直接用send_keys()方法上传文件了。

     1 from selenium import webdriver
     2 import time
     3 profile_directory = r'C:Usersct-wylAppDataRoamingMozillaFirefoxProfileslt6n8ynh.default'
     4 profile = webdriver.FirefoxProfile(profile_directory)
     5 driver = webdriver.Firefox(profile)
     6 driver.get('https://www.cnblogs.com/FlyToDream')
     7 time .sleep(2)
     8 driver.find_element_by_id('blog_nav_newpost').click()
     9 driver.implicitly_wait(2)
    10 driver.find_element_by_css_selector('img.mceIcon').click()
    11 time.sleep(3)
    12 # 页面有多个iframe,找到所有的iframe,根据索引取要找的iframe
    13 ifrme = driver.find_elements_by_css_selector('iframe')[1]
    14 driver.switch_to.frame(ifrme)
    15 driver.find_element_by_name('file').send_keys(r'C:Usersct-wylPictures6.jpg')
  • 相关阅读:
    python基础----装饰器
    python基础----函数的定义和调用、return语句、变量作用域、传参、函数嵌套、函数对象、闭包、递归函数
    python基础----文件处理
    python基础
    django时间的时区问题
    django-admin详细设置
    Django框架-模板系统
    Django框架--路由分配系统
    jQuery教程
    django博客项目11
  • 原文地址:https://www.cnblogs.com/FlyToDream/p/10750108.html
Copyright © 2011-2022 走看看