10-上传

上传不能模拟用户在页面上选择本地文件,只能先把要上传的文件先准备好在代码里上传

import time
from selenium.webdriver.support.select import Select
#pip install selenium
from selenium import webdriver
from selenium.webdriver.common.by import By # 定义一个driver的变量,用来接收实例化后的浏览器
# 指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)
# 使用get方法,访问网址
driver.get("https://sahitest.com/demo/php/fileUpload.htm")
# 获取input文件上传元素
upload = driver.find_element(By.ID,'file')
upload.send_keys(r"D:\pythonProject2023\SeleniumFirst\file\1.jpg")
time.sleep(2)
driver.find_element(By.NAME,'submit').click()
time.sleep(3)
driver.quit()

11-下载

import time
from selenium import webdriver
from selenium.webdriver.common.by import By #指定下载路径
chromeOptions = webdriver.ChromeOptions()
prefs = {"download.default_directory":"D:\\pythonProject2023\\SeleniumFirst\\file"}
chromeOptions.add_experimental_option("prefs",prefs) # 定义一个driver的变量,用来接收实例化后的浏览器
# 指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题
chrome_location = r'D:\pythonProject2023\SeleniumFirst\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)
#窗口最大化
driver.maximize_window()
# 使用get方法,访问网址
driver.get("https://registry.npmmirror.com/binary.html?path=chromedriver/")
time.sleep(3)
driver.find_element(By.XPATH,'/html/body/table/tbody/tr[156]/td[2]/a').click()
time.sleep(3)
driver.quit()

下载如何判断下载完成了,这个在页面上不能直接判断有个可行的思路提供给大家,谷歌浏览器下载中的文件后缀是.crdownload,可以去下载的路径判断有没有后缀为.crdownload的文件来判断是否下载完成。

指定谷歌浏览器下载路径的代码如下:

# 指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题
chrome_location = r'D:\ProgramData\pythonProject\auto\chrome-win64\chrome.exe'
options = webdriver.ChromeOptions()
#这里的作用如果是https的服务,跳过点击继续的那个步骤直接进入页面。
options.add_argument('--ignore-certificate-errors')
#指定下载路径
prefs = {"download.default_directory":"D:\\bcpDown"}
options.add_experimental_option("prefs",prefs)
options.binary_location = chrome_location
driver = webdriver.Chrome(options=options)

有的页面点击后会打开一个新的页面,切换页面的带入如下:

注:不切换分页后续所有的操作就都失败了,这是一个容易出问题的点

#分页了跳到另一个浏览器分页
driver.switch_to.window(driver.window_handles[1])

Selenium4自动化测试8--控件获取数据--上传、下载、https和切换分页的更多相关文章

  1. 在EasyUI项目中使用FileBox控件实现文件上传处理

    我在较早之前的随笔<基于MVC4+EasyUI的Web开发框架形成之旅--附件上传组件uploadify的使用>Web框架介绍中介绍了基于Uploadify的文件上传操作,免费版本用的是J ...

  2. FileUpload控件「批次上传 / 多档案同时上传」的范例--以「流水号」产生「变量名称」

    原文出處  http://www.dotblogs.com.tw/mis2000lab/archive/2013/08/19/multiple_fileupload_asp_net_20130819. ...

  3. .Net neatupload上传控件实现文件上传的进度条

    1. 引入bin文件 (可以到neatupload官网下载,也可以到教育厅申报系统中找) 2. 将控件加入到工具栏,在工具栏中点鼠标右键,如图: 3. 加入neatuplaod这个文件夹(可以到nea ...

  4. HTML5 FormData 模拟表单控件 支持异步上传二进制文件 移动端

    FormData是XMLHttpRequest Level 2添加的一个新的接口,利用FormData对象,我们可以通过JavaScript用一些键值对来模拟一系列表单控件,还可以使用XMLHttpR ...

  5. bootstrap fileinput控件 + django后台上传、回显简单使用

    一.控件下载:https://github.com/kartik-v/bootstrap-fileinput/ 官网:http://plugins.krajee.com/file-input 需要引入 ...

  6. 037. asp.netWeb用户控件之五使用用户控件实现文件上传功能

    fileUpload.ascx代码: <%@ Control Language="C#" AutoEventWireup="true" CodeFile= ...

  7. WebForm之FileUpload控件(文件上传)

    FileUpload控件要与Button.LinkButton.ImageButton配合使用 FileUpload控件的方法及属性: 1.SaveAs("要上传到服务器的绝对路径" ...

  8. 利用bootsrap控件 实现文件上传功能

    源代码实例:https://github.com/kartik-v/bootstrap-fileinput 一.jsp页面 <%@ page language="java" ...

  9. C# MVC(File)控件多张图片上传加预览

    刚来公司实习,老板叫我写一个积分商城网站.用的是公司的框架结构搭建的后台,所以后台的图片上传不需要自己写.但是前台的评价图片就需要自己手写了,在网上找了很多代码发现都用不了.问了很多人也都没有实现! ...

  10. jquery本地上传预览扩展(隐藏上传控件单击图片上传支持ie!!)

    我用到的原材料地址:http://www.cnblogs.com/leejersey/p/3660202.html 修改后: /// <reference path="../../Js ...

随机推荐

  1. #虚树,树形dp#洛谷 3233 [HNOI2014]世界树

    题目 分析 考虑建一棵虚树,倍增找到虚树上相邻两个点的中间点统计答案 记录每个虚树点最近的距离以及编号最小的点,主要是细节问题 代码 #include <cstdio> #include ...

  2. 小师妹学JavaIO之:文件读取那些事

    目录 简介 字符和字节 按字符读取的方式 按字节读取的方式 寻找出错的行数 总结 简介 小师妹最新对java IO中的reader和stream产生了一点点困惑,不知道到底该用哪一个才对,怎么读取文件 ...

  3. Go 语言之 Maps 详解:创建、遍历、操作和注意事项

    Maps 用于以键值对的形式存储数据值.Maps中的每个元素都是一个键值对.Maps是一个无序且可更改的集合,不允许重复.Maps的长度是其元素的数量.您可以使用 len() 函数来查找长度.Maps ...

  4. SpringCloud OpenFeign token中转

    OpenFeign 的本质是调用指定服务的 Controller. 前后端分离项目,调用 Controller 是需要传递 token 的. OpenFeign 并不会自动携带 token 去访问 C ...

  5. 外屏和宽屏浪费了?HarmonyOS折叠屏设计规范教你用起来

    原文:https://mp.weixin.qq.com/s/7_mdRom7sCA3Z65ih6W3xw,点击链接查看更多技术内容. 这几年折叠屏手机很火,我们针对使用HarmonyOS的折叠屏手机提 ...

  6. 重走py 之路 ——字典和集合(二)

    前言 python 中有6大标准类型: 数字(Number) 字符串(String) 列表(List) 元组(Tumple) 集合(Set) 字典(Dictionary) 前面已经介绍了上面4种,还有 ...

  7. NG 转发配置

    ng的用途就不用说了,反向代理么,都知道,不过以前一直不太理解怎没配,现在终于理解点了 1.下载ng,如图: 2.先解压,解压后的路径不建议有空格和中文,其次配置环境变量,加到系统path 3.启动n ...

  8. 力扣620(MySQL)-有趣的电影(简单)

    题目: 某城市开了一家新的电影院,吸引了很多人过来看电影.该电影院特别注意用户体验,专门有个 LED显示板做电影推荐,上面公布着影评和相关电影描述. 作为该电影院的信息部主管,您需要编写一个 SQL查 ...

  9. 【SIGIR 2022】面向长代码序列的Transformer模型优化方法,提升长代码场景性能

    简介: 论文主导通过引入稀疏自注意力的方式来提高Transformer模型处理长序列的效率和性能 阿里云机器学习平台PAI与华东师范大学高明教授团队合作在SIGIR2022上发表了结构感知的稀疏注意力 ...

  10. 一个好的网站logo设计长这样

    ​简介:一个好的网站logo,不仅让用户一眼知道网站品牌传递的信息,还能提高网站专业度和丰富度,增加SEO搜索排名.今天分享下如何设计一款实用的网站logo.阿里云智能logo设计,在线免费体验log ...