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')
  • 相关阅读:
    Method of Four Russians 学习笔记
    一道不知道哪里来的数论题
    ICPC2021银川 游记
    决策单调性优化dp学习笔记
    浅谈如何优美地实现线段树?
    2021 EC Final 2020 题解
    5.5 SYSU校内训练
    5.4 SYSU校内训练
    存储相关招聘信息-长期
    screen几个使用方法
  • 原文地址:https://www.cnblogs.com/FlyToDream/p/10750108.html
Copyright © 2011-2022 走看看