Selenium4自动化测试8--控件获取数据--上传、下载、https和切换分页

news/2024/9/20 8:10:51

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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/31920.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

webase go-sdk 简单使用

本流程在test目录下,其中用到的 solc-0.4.25 和 abigen 工具网上教程都比较详细,就暂时不展开聊,今天就大概描述流程。 1.将目录下的test.sol文件编译pragma solidity ^0.4.25;import "./Table.sol";contract test {string constant TABLE_NAME = "test2&quo…

Selenium4自动化测试6--控件获取数据--下拉框级联选择、checkbox选择、时间选择器

4-下拉框级联选择 import time from selenium.webdriver.support.select import Select #pip install selenium from selenium import webdriver from selenium.webdriver.common.by import By# 定义一个driver的变量,用来接收实例化后的浏览器 # 指定浏览器的位置,解决浏览器…

Selenium4自动化测试7--控件获取数据--radio单选框、select下拉框选择、iframe

7- radio单选框 import timefrom selenium import webdriver from selenium.webdriver.common.by import By # 定义一个driver的变量,用来接收实例化后的浏览器 # 指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题 chrome_location = rD:\pythonProject2023\Seleniu…

三原色及补色

RGB和CMY互补关系按顺序来一一对应(一定要牢记); 也就是说 (C)青色是(R)红色的补色,(M)品红色是(G)绿色的补色, (Y)黄色是(B)蓝色的补色。 这样就很好记了三原色其中的两种叠加生成另一种原色的补色:比如 红➕绿=黄(蓝的补色); 反之同理:青➕品=蓝 (黄对应的原色),所以青…

Mac电脑idea插件JRebel提示不可用

现象:原因:常见如:https://jrebel.qekang.com/解决办法: 降低IDEA>jrebel版本 2022.4.1 进入idea:打开 Preferences-Plugins找到jrebel插件并卸载; 到idea官方店下载:https://plugins.jetbrains.com/plugin/4441-jrebel-and-xrebel/versions/stable 找到对应版本下载…

HBuilderX 配置微信小程序进行调试

1、打开微信开发者工具,点击设置--->安全设置 2、在安全设置选项卡窗口,开启服务端口,复制端口号3、返回到HBuilderX工具,点击工具--->设置--->运行配置,【配置外部web服务器调用url】和【微信开发者工具路径】 4、选中uni-app项目,点击运行--->运行到小程序…

说说webpack proxy工作原理?为什么能解决跨域?

一、是什么 webpack proxy,即webpack提供的代理服务 基本行为就是接收客户端发送的请求后转发给其他服务器 其目的是为了便于开发者在开发模式下解决跨域问题(浏览器安全策略限制) 想要实现代理首先需要一个中间服务器,webpack中提供服务器的工具为webpack-dev-server webp…

AST 简述

AST 是源代码的抽象语法结构的树状表示。利用它可以还原混淆后的js代码。 @babel/parser 是js语法编译器 Babel 的 nodejs 包,内置很多分析 js 的方法,可以实现js到AST的转换。 JS 转为 AST:https://astexplorer.net/ 准备工作: 需安装nodejs环境以及babel,babel 安装: n…