Python SELENIUM上传文件或图片实现过程


Posted in Python onOctober 28, 2019

逛网站的时候经常会遇到需要上传图片的操作,这里主要来说下selenium操作上传文件的操作。

前提条件:定位的元素必须是type 属性是file类型。即type="file",如下图:

Python SELENIUM上传文件或图片实现过程

详细用法:

Python SELENIUM上传文件或图片实现过程

参考代码:

from selenium import webdriver
import time


driver = webdriver.Chrome()


def test_open_page():
  '''打开界面'''
  driver.maximize_window()
  driver.get('http://106.233.81.250/fw/index.php?ctl=user&act=login')

def test_register(user,password):
  '''输入用户名密码'''
  driver.find_element_by_css_selector('#login-email-address').send_keys(user)
  driver.find_element_by_css_selector('#login-password').send_keys(password)
  driver.find_element_by_xpath('//input[@type="submit"]').click()
  driver.implicitly_wait(30)
  driver.find_element_by_xpath('//input[@value="取消"]').click()

def test_money():
  '''操作我要借款'''
  #driver.find_element_by_link_text('我要借款').click()
  el = driver.find_elements_by_css_selector('.pr20')
  el[2].click()
  ele = driver.find_elements_by_xpath('//div[@class="tc pt10"]/a/img')
  ele[0].click()

def test_input_info():
  '''输入借款信息'''
  driver.find_element_by_css_selector('#borrowtitle').send_keys(2)
  driver.find_element_by_css_selector('#borrowamount').send_keys(2000)
  driver.find_element_by_css_selector('#repaytime').send_keys(20)
  driver.find_element_by_css_selector('#apr').send_keys(20)
  # todo js操作滚动条
  js1 = "document.documentElement.scrollTop=1000"
  driver.execute_script(js1)
  time.sleep(1)
  elem = driver.find_elements_by_xpath('//div[@style="width:710px;"]/input[@type="text"]')
  elem[0].send_keys(2)
  driver.find_element_by_xpath('//button[@rel="file_1"]').click()
  time.sleep(1)
  driver.find_element_by_xpath('//li[text()="本地上传"]').click()
  time.sleep(1)
  # todo 文件操作上传图片
  driver.find_element_by_name('imgFile').send_keys(r'D:\file\1.png')
  time.sleep(1)
  driver.find_element_by_xpath('//input[@type="button" and @value="确定"]').click()

def test_closed():
  time.sleep(6)
  driver.quit()

test_open_page()
test_register('admin','admin')
test_money()
test_input_info()
test_closed()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python help()函数用法详解
Mar 11 Python
Python删除指定目录下过期文件的2个脚本分享
Apr 10 Python
Python基于回溯法子集树模板解决野人与传教士问题示例
Sep 11 Python
解决Python字典写入文件出行首行有空格的问题
Sep 27 Python
python中的数据结构比较
May 13 Python
python3.7将代码打包成exe程序并添加图标的方法
Oct 11 Python
如何在 Django 模板中输出 "{{"
Jan 24 Python
Python包和模块的分发详细介绍
Jun 19 Python
Python 实现将某一列设置为str类型
Jul 14 Python
opencv检测动态物体的实现
Jul 21 Python
用Python生成会跳舞的美女
Jan 18 Python
利用Python实现翻译HTML中的文本字符串
Jun 21 Python
PYTHON实现SIGN签名的过程解析
Oct 28 #Python
Python爬虫使用代理IP的实现
Oct 27 #Python
Python搭建代理IP池实现接口设置与整体调度
Oct 27 #Python
Python搭建代理IP池实现检测IP的方法
Oct 27 #Python
浅析使用Python搭建http服务器
Oct 27 #Python
Python搭建代理IP池实现存储IP的方法
Oct 27 #Python
Python搭建代理IP池实现获取IP的方法
Oct 27 #Python
You might like
PHP函数checkdnsrr用法详解(Windows平台用法)
2016/03/21 PHP
Thinkphp 在api开发中异常返回依然是html的解决方式
2019/10/16 PHP
SUN的《AJAX与J2EE》全文译了
2007/02/23 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
2013/12/03 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
js Dialog 去掉右上角的X关闭功能
2014/04/23 Javascript
javascript浏览器兼容教程之事件处理
2014/06/09 Javascript
jquery实现用户信息修改验证输入方法汇总
2015/07/18 Javascript
jQuery地图map悬停显示省市代码分享
2015/08/20 Javascript
AngularJS全局scope与Isolate scope通信用法示例
2016/11/22 Javascript
ES5学习教程之Array对象
2017/04/01 Javascript
vue中v-model动态生成的实例详解
2017/10/27 Javascript
使用 Node.js 开发资讯爬虫流程
2018/01/07 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
Angular项目如何升级至Angular6步骤全纪录
2018/09/03 Javascript
jQuery实现简易聊天框
2020/02/08 jQuery
微信浏览器左上角返回按钮监听的实现
2020/03/04 Javascript
[04:10]DOTA2英雄梦之声_第11期_圣堂刺客
2014/06/21 DOTA
[11:12]2018DOTA2国际邀请赛寻真——绿色长城OpTic
2018/08/10 DOTA
Windows上配置Emacs来开发Python及用Python扩展Emacs
2015/11/20 Python
Python 的描述符 descriptor详解
2016/02/27 Python
python+pandas分析nginx日志的实例
2018/04/28 Python
Django中的静态文件管理过程解析
2019/08/01 Python
解决Django中调用keras的模型出现的问题
2019/08/07 Python
Python依赖包迁移到断网环境操作
2020/07/13 Python
使用Python pip怎么升级pip
2020/08/11 Python
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
大学四年的个人自我评价
2014/01/14 职场文书
餐厅楼面部长岗位职责范文
2014/02/16 职场文书
开学典礼策划方案
2014/05/28 职场文书
劳资员岗位职责
2015/02/13 职场文书
复试通知单模板
2015/04/24 职场文书
解决Navicat for MySQL 连接 MySQL 报2005错误的问题
2021/05/29 MySQL
MySQL系列之六 用户与授权
2021/07/02 MySQL