selenium之上传文件或图片的操作

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

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

详细用法:

参考代码:

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()

原文地址:https://www.cnblogs.com/xiamaojjie/p/11624790.html

时间: 2024-10-21 19:13:42

selenium之上传文件或图片的操作的相关文章

使用FormData上传文件、图片

关于FormData XMLHttpRequest Level 2添加了一个新的接口  ---- FormData 利用FormData对象,可以通过js用一些键值对来模拟一系列表单控件,可以使用XMLHttpRequest的 send( ) 方法来异步提交表单 与普通的ajax相比,使用FormData的最大优点就是可以异步上传二进制文件 FormData对象 FormData对象,可以把所有表单元素的name与value组成一个queryString,提交到后台. 在使用ajax提交时,使用

input type='file' 上传文件 判断图片的大小是否合格与witdh 和 height 是否合格

function CheckFiles(obj) { var array = new Array('gif', 'jpeg', 'png', 'jpg'); //可以上传的文件类型 if (obj.value == '') { alert("让选择要上传的图片!"); return false; } else { var fileContentType = obj.value.match(/^(.*)(\.)(.{1,8})$/)[3]; //这个文件类型正则很有用:) var isE

SpringMVC上传文件(图片)并保存到本地

SpringMVC上传文件(图片)并保存到本地 小记一波~ 基本的MVC配置就不展示了,这里给出核心代码 在spring-mvc的配置文件中写入如下配置 <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> <property name="maxUploadSize">

python +selenium上传文件

python +selenium上传文件 分为2部分 1.是input标签 driver.find_element_by_name("upload").send_keys('C:\\test.txt') 2.非input标签 https://blog.csdn.net/weixin_42024694/article/details/80080629 原文地址:https://www.cnblogs.com/ljf520hj/p/12181098.html

FTP文件操作之上传文件

上传文件是一个比较常用的功能,前段时间就做了一个上传图片的模块.开始采用的是共享文件夹的方式,后来发现这种方法不太好.于是果断将其毙掉,后来选择采用FTP的方式进行上传.个人感觉FTP的方式还是比较好用的,所以跟大家分享一下.   /// <summary> /// FTP上传文件 /// </summary> /// <param name="fileUpload">上传控件</param> /// <param name=&qu

Selenium上传文件方法总结

Web上本地上传图片,弹出的框Selenium是无法识别的,也就是说,selenium本身没有直接的方法去实现上传本地文件,这里总结了两种上传文件的方式. 一.利用Robot类处理文件上传. 其大致流程可以为: 1. 利用selenium点击web上本地文件的上传按钮: 2. 在弹出的弹框中,文件路径输入框默认的是光标的聚焦,将文件在磁盘上的路径通过拷贝和黏贴的方法写上去. 3. 通过按下回车,默认触发弹框的确定按钮,完成文件上传的功能. 这里以百度首页的利用图片搜索为例: 打开百度首页,搜索按

Selenium 上传文件失败,解决办法一

昨个改程序遇到一个问题,UI上面有需要上传文件的地方.但是我不知道怎么让Selenium完成 点击上传文件按钮->在弹出的文件选择窗口中选择路径和文件,点确定. 要知道弹出窗口属于window的范畴,Selenium只能处理Web page. Jeremy原先的代码用的是Selenium RC中的 type “filepath+filename”方法.可不知咋搞的反正运行到这里是进行不下去了. 正好借这个机会来研究一下在Webdriver里怎么做. 我自己写了个网页,里面就一句 我先是用Sele

小程序云开发--云函数上传文件或图片 base64

云函数开发遇到的问题 在微信云开发环境当中,普通的用户并没有往云存储内写入文件的权限 所以普通用户想要使用wx.cloud.uploadFile显然是不现实的 但是我们同时也知道,云函数是后台服务端,具有管理员权限,只要能调用云函数上传文件就可以解决这个问题了 参照官方文档中云函数的写法 const cloud = require('wx-server-sdk') const fs = require('fs') const path = require('path') exports.main

JavaScript中上传文件为图片如何读取(UI组件之图片剪裁器)

//获取上传的文件/图片 function getFile(){ var files,len; var reader = new FileReader(); var img_type; addEvent(selectFile,'change',function(){ files = this.files;//selectFile为上传文件表单,this.files获取选择的文件 len = files.length; if(len > 0){ img_type = files[0].type;