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

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

时间:2024-05-15 19:09:48浏览次数:30  
标签:控件 浏览器 webdriver -- driver 获取数据 options chrome

系列导航

一、Selenium4自动化测试1--Chrome浏览器和chromedriver

二、Selenium4自动化测试2--元素定位By.ID,By.CLASS_NAME,By.TAG_NAME

三、Selenium4自动化测试3--元素定位By.NAME,By.LINK_TEXT 和通过链接部分文本定位,By.PARTIAL_LINK_TEXT,css_selector定位,By.CSS_SELECTOR

四、jSelenium4自动化测试4--元素定位By.XPATH,元素定位最佳顺序

五、Selenium4自动化测试5--控件获取数据--ALERT弹窗、Confirm弹窗、Prompt弹窗

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

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

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

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

 

标签:控件,浏览器,webdriver,--,driver,获取数据,options,chrome
From: https://www.cnblogs.com/yclh/p/18194530

相关文章

  • vue3的入门--setup
    代码量:200行以上博客量:1时间:2h vue2中的data和methods可以与setup并列写,但是:data和methods可以利用this调用setup中的数据而,setup中,不能调用data和methods中的数据<!--Person.vue--><template><divclass="person"><h2>姓名:{{name}}</h2>&......
  • 蓝桥杯-航班时间(简单写法+sscanf的应用)
    小h前往美国参加了蓝桥杯国际赛。小h的女朋友发现小h上午十点出发,上午十二点到达美国,于是感叹到“现在飞机飞得真快,两小时就能到美国了”。小h对超音速飞行感到十分恐惧。仔细观察后发现飞机的起降时间都是当地时间。由于北京和美国东部有12小时时差,故飞机总共需要......
  • E. We Need More Bosses
    原题链接题解1.已知如果两个点之间有两条边不重合的路径,那么这两个点就在一个边强连通分量里,所以我们可以把处于同一个边强连通分量的点缩起来在这里,我忘记了怎么求边强连通分量,所以我再提醒一下自己已知树结构是不存在强连通分量的,它的特性是深度大的节点只有一条回到深度小......
  • Spring Boot项目,LocalDateTime参数在不同传参方式下的报错
    背景很基础的问题,只是项目中有遇到,简单记录一下两个类似的请求,一个为GET请求,普通传参方式,一个为POST请求,JSON传参,用@RequestBody接受,两者的传参是同一个对象,其中有个参数updateTime,类型为LocalDateTimeGET请求正常,POST请求会报400原因很基础的问题GET请求的参数通常通过URL......
  • webase go-sdk 简单使用
    本流程在test目录下,其中用到的 solc-0.4.25和abigen工具网上教程都比较详细,就暂时不展开聊,今天就大概描述流程。1.将目录下的test.sol文件编译pragmasolidity^0.4.25;import"./Table.sol";contracttest{stringconstantTABLE_NAME="test2";......
  • Selenium4自动化测试7--控件获取数据--radio单选框、select下拉框选择、iframe
    7-radio单选框 importtimefromseleniumimportwebdriverfromselenium.webdriver.common.byimportBy#定义一个driver的变量,用来接收实例化后的浏览器#指定浏览器的位置,解决浏览器驱动和浏览器版本不匹配的问题chrome_location=r'D:\pythonProject2023\Seleni......
  • 洛谷题单指南-动态规划3-P1220 关路灯
    原题链接:https://www.luogu.com.cn/problem/P1220题意解读:按坐标顺序排列1~n个路灯,每个路灯有不同的功耗,老张从位置c开始关灯,第一时间关掉c位置的灯,每次关掉一个灯之后,可以往右走、也可以往左走关下一个灯,老张速度是1m/s,求所有灯都关掉所消耗的最少功耗。解题思路:由题意分析,关......
  • 三原色及补色
    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找到对应版本下载到本地后,打开......
  • 如何让Vmware虚拟机ubuntu20.04使用物理机(windows11)下的魔法能力(浏览器及命令行下载、
    ​首先点击VMware下的“编辑”》虚拟网络编辑器,得到如图所示画面。​​​​​如果没有VMnet0就到桌面上右键VMware图标选择属性,然后如图:兼容性>以管理员身份运行此程序。然后重新打开就有了。然后桥接模式不要选择自动设置,如何选择继续往下看。在主机中cmd命令行输入:syste......