selenium自动化测试基础知识

ops/2024/12/18 17:23:59/

目录

一、概念知识

(一)三大核心组件

(二)Selenium 自动化测试的工作原理

(三)Selenium 支持的操作

(四)Selenium 自动化测试的优点

(五)Selenium 自动化测试的缺点

(六)Selenium 自动化测试的应用场景

总结

二、实操例子

使用前提--安装步骤

注意事项

(一)浏览器的操作

1.打开谷歌浏览器

2.浏览器窗口最大化

3.设置浏览器的宽高

4.打开新窗口(不会覆盖)

5.关闭浏览器和当前页面

6.打开url 

7.获取页面标题 

8.刷新页面

9.返回上一页、进入下一页 

10.处理弹框 

11.截图浏览器当前页面

12.页面滚动条控制

 (二)seleium定位方式

1.通过ID定位 

2.通过name属性定位

3.通过class name属性定位 

4.通过 Tag Name 定位 

5.通过 XPath 定位(超好用) 

6.通过 Link Text 定位链接(精准的定位 ) 

7. 通过 Partial Link Text 定位链接(模糊定位)

8.通过 CSS 选择器定位

通过类名(.class的值)

 通过id名(#id的值)

通过属性('[name=值]')

 通过class的值('[class=值]')

任意标签内容('[任意标签=对应值]')---好用

上级定位('上级标签头>下级标签头')

三、其他事件

(一)鼠标事件 

鼠标点击(click())

(二)键盘事件

1.框内输入内容

2.确定回车键 

3.框内全选快捷键

4.框内剪切快捷键

5.复制粘贴 

(三)文件上传

(四)下拉框处理

(五)按钮框选择

(六)确认框选择

 四、练习文件获取

方式一:csdn下载上传的文件

方式二:文章底部下面扫那个猫


一、概念知识

Selenium 是一个广泛使用的开源自动化测试工具,它主要用于Web应用程序的自动化测试。通过 Selenium,开发人员和测试人员可以模拟用户在浏览器中的操作,以自动化执行浏览器操作和验证网页功能。其主要目标是提高测试的效率、准确性,并支持跨浏览器的测试

一般用于回归测试或者周期比较长的项目,短期项目比较少用,或者用于重复性强的复杂测试

(一)三大核心组件

 1.Selenium WebDriver

  • WebDriver 是 Selenium 的核心组件之一,提供了与浏览器交互的接口。它能够模拟用户在浏览器中的各种操作,如点击按钮、输入文本、选择下拉框选项、验证页面内容等。
  • WebDriver 直接与浏览器进行交互,比 Selenium 的早期版本(如 Selenium RC)更为强大和稳定。

2.Selenium IDE (Integrated Development Environment)

  • Selenium IDE 是一个浏览器插件(如 Firefox 和 Chrome),可以录制和回放用户的浏览器操作,帮助快速生成自动化测试脚本。适合快速开发和原型测试,但它不如 WebDriver 灵活且功能强大。

3.Selenium Grid

  • Selenium Grid 是 Selenium 生态中的另一个重要组件,旨在实现并行测试。通过 Selenium Grid,可以在多个机器和浏览器上同时运行测试用例,极大地提高了测试效率。

(二)Selenium 自动化测试的工作原理

Selenium 自动化测试通过模拟用户的行为进行网页操作和验证,主要通过以下步骤实现:

1.启动浏览器: 通过 WebDriver 启动一个浏览器实例(如 Chrome、Firefox、Edge 等)。

2.定位页面元素: 使用 WebDriver 提供的查找方法(如 find_element_by_id, find_element_by_xpath, find_element_by_css_selector 等)定位网页中的各种元素(按钮、文本框、下拉框、链接等)。

3.与页面元素交互: 模拟用户对这些页面元素的操作。例如,点击按钮(click())、输入文本(send_keys())、获取元素的文本内容(text())等。

4.验证测试结果: 比如验证页面是否成功加载、验证是否出现了预期的内容等,通常是通过断言(assertions)来进行验证。

5.关闭浏览器: 在测试完成后,关闭浏览器并结束测试。 

(三)Selenium 支持的操作

打开网页
点击按钮
输入文本
获取文本
获取元素的属性值
模拟鼠标操作(如悬停、右键点击等)
使用 ActionChains 类来模拟复杂的鼠标操作。
等待元素加载:
使用显式等待 (WebDriverWait) 或隐式等待来等待元素的加载

(四)Selenium 自动化测试的优点

  • 跨浏览器支持: Selenium 支持多种主流浏览器,包括 Chrome、Firefox、Safari、Edge 和 IE。通过不同的浏览器驱动,可以在不同浏览器上进行自动化测试

  • 语言支持: Selenium 支持多种编程语言,包括 Java、Python、C#、Ruby、JavaScript 等,开发者可以选择熟悉的语言进行自动化测试脚本的编写。

  • 开放源码: Selenium 是一个开源项目,完全免费使用,且有广泛的社区支持。

  • 支持并行执行: Selenium Grid 可以让测试在多台机器和多个浏览器实例上并行执行,大大提高了执行效率。

  • 集成性强: Selenium 可以与多种测试框架集成,如 TestNG、JUnit、pytest 等。它还可以与 CI/CD 工具(如 Jenkins、GitLab CI 等)集成,实现自动化测试的持续集成。

  • 灵活性: Selenium 可以与各种测试工具、报告工具、以及性能测试工具(如 JMeter、Allure 等)结合使用,增强自动化测试的功能和可视化效果。

(五)Selenium 自动化测试的缺点

  • 不支持图形用户界面 (GUI) 测试: Selenium 主要用于 Web 页面测试,并不适用于桌面应用程序或 GUI 测试

  • 在处理动态网页时可能比较复杂: 对于高度动态的网页,Selenium 可能需要配合一些等待机制来确保页面元素的加载(如使用显式等待和隐式等待)。

  • 调试复杂性: 当测试出现问题时,调试可能较为困难,尤其是当测试脚本非常庞大时。

  • 浏览器兼容性: 尽管 Selenium 支持多浏览器,但不同浏览器的渲染和行为可能有所不同,这要求测试人员在测试时要特别注意。

(六)Selenium 自动化测试的应用场景

  • 功能测试: 用于验证 Web 应用程序的各项功能是否按预期工作。例如,登录测试、表单提交测试、链接测试等。

  • 回归测试: 在 Web 应用程序修改或新增功能后,进行回归测试以确保其他功能没有受到影响。

  • 性能测试: 使用 Selenium Grid 和其他工具(如 JMeter)配合进行负载测试和性能测试

  • 跨浏览器测试: Selenium 可用来在多个浏览器上执行相同的测试,确保 Web 应用程序在不同浏览器中的兼容性。

总结

  • Selenium 是一款功能强大的自动化测试工具,广泛应用于 Web 应用的自动化测试
  • 通过模拟用户的浏览器操作,Selenium 提供了一种高效、可靠的方式来执行回归测试、功能测试和跨浏览器测试
  • 它支持多种编程语言,能够与不同的测试框架和工具集成,适用于各种开发和测试流程。

二、实操例子

使用前提--安装步骤

python自动化selenium安装配置(包含谷歌的chromedriver)-CSDN博客

注意事项

 一定要注意这个find_element和find_elements的使用,复数多的加s使用,单个不加s,要注意使用

浏览器执行速度太快可能看不起,可以用time.sleep(秒)来控制延长时间方便观察,使用这个要导入time包

配置好要使用的模块 

(一)浏览器的操作

ps:单行代码无法使用,结合起来使用 

1.打开谷歌浏览器
python">#导入模块
from selenium import webdriver
#打开谷歌浏览器
driver = webdriver.Chrome()# 启动 Firefox 浏览器
# driver = webdriver.Firefox()# 启动 Edge 浏览器
# driver = webdriver.Edge()
2.浏览器窗口最大化
python"># 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()
3.设置浏览器的宽高
python">driver.set_window_size(1000,800)
4.打开新窗口(不会覆盖)
python"># #打开百度的页面
driver.get("https://www.baidu.com")
#打开京东页面。不会覆盖
win='window.open("https://www.jd.com")'
#调用新界面
driver.execute_script(win)

 

5.关闭浏览器和当前页面
python">driver.quit()#关闭整个浏览器
driver.close()#关闭当前页面
6.打开url 
python">#打开百度的页面
driver.get("https://www.baidu.com")
7.获取页面标题 
python">#获取页面title,赋值给title
title=driver.title
#打印title
print(title)
8.刷新页面
python">driver.refresh()
9.返回上一页、进入下一页 
python">#返回上一页
driver.back()
#进入下一页
driver.forward()
10.处理弹框 
python">alert = driver.switch_to.alert
alert.accept()  # 点击"确定"
alert.dismiss()  # 点击"取消"
11.截图浏览器当前页面

ps:默认放到执行文件的同级目录下

python">#整个浏览器截图,默认放到当前执行文件的同级目录
driver.save_screenshot('screenshot.png')
12.页面滚动条控制

页面滚动到底部

通过 window.scrollTo() 方法来滚动页面 

python">driver.execute_script("window.scrollTo(0, document.body.scrollHeight);")

页面滚动到顶部

同样,window.scrollTo() 方法也可以将页面滚动到顶部 

python">#页面滚动到顶部
driver.execute_script("window.scrollTo(0, 0);")

 页面滚动到指定的位置

ps:用jd示例

python"># #打开京东的页面
driver.get("https://www.jd.com")
# 可以指定 y 坐标。比如,滚动到页面 1000 像素的位置
driver.execute_script("window.scrollTo(0, 1000);")

滚动一定的距离

每次滚动一定的距离,可以通过滚动 xy 坐标来实现。比如,向下滚动 500 像素,向上就改变y轴的值为负数

python"># 向下滚动 500 像素
driver.execute_script("window.scrollBy(0, 500);")#向上滚动 500像素,就是把y轴的值改为负数就好
driver.execute_script("window.scrollBy(0, -500);")

 (二)seleium定位方式

Selenium 提供了多种定位方式,你可以根据具体的需求选择最适合的方式。常见的有:

ps:一般来说ID和Name是最常用和最稳定的

ID
Name
Class Name
Tag Name
Link Text 和 Partial Link Text
XPath
CSS Selector

演示页面 

1.通过ID定位 

根据百度的输入框id定位到输入框,然后输入你好

关键代码 

python">#通过id定位百度的输入框,点击输入自定义内容你好
driver.find_element_by_id("kw").send_keys("你好")

完整的实操代码

python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#通过id定位百度的输入框,点击输入自定义内容你好
driver.find_element_by_id("kw").send_keys("你好")

2.通过name属性定位

根据百度的输入框name属性定位到输入框,然后输入云边的快乐猫 

 关键代码 

python">#通过name定位百度的输入框,点击输入自定义内容云边的快乐猫
driver.find_element_by_name("wd").send_keys("云边的快乐猫")

完整的实操代码

python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#通过name定位百度的输入框,点击输入自定义内容云边的快乐猫
driver.find_element_by_name("wd").send_keys("云边的快乐猫")

3.通过class name属性定位 

根据百度的输入框class name属性定位到输入框,然后输入云边的快乐猫

ps:class 属性用于指定元素的样式类,但可能有多个元素使用相同的类名。通过 class_name 定位时,Selenium 会返回匹配的第一个元素。

关键代码 

python">#通过class name定位百度的输入框,点击输入自定义内容云边的快乐猫
driver.find_element_by_class_name("s_ipt").send_keys("云边的快乐猫")

完整代码

python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#通过class name定位百度的输入框,点击输入自定义内容云边的快乐猫
driver.find_element_by_class_name("s_ipt").send_keys("云边的快乐猫")

4.通过 Tag Name 定位 

通过 HTML 元素的标签名称来定位,比如 inputbuttondiv

ps:主要用来根据input标签寻找其他标签

关键代码

注意:这个elements是有s的复数,不是element

python">#通过class name定位百度的输入框,点击输入自定义内容云边的快乐猫
#注意:这个find_elements_by_tag_name的elements是带s的
s=driver.find_elements_by_tag_name('input')
#遍历input标签里面自己想要的属性,这里再通过id定位
for i in s:if i.get_attribute('id')=='kw':i.send_keys('云边的快乐猫')

完整的代码

python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#通过input定位百度的输入框,点击输入自定义内容云边的快乐猫
#注意:这个find_elements_by_tag_name的elements是带s的
s=driver.find_elements_by_tag_name('input')
#遍历input标签里面自己想要的属性,这里再通过id定位
for i in s:if i.get_attribute('id')=='kw':i.send_keys('云边的快乐猫')

5.通过 XPath 定位(超好用) 

 ps:超好用,几乎什么都可以定位到

选择方式:选中--右键--copy--点击倒二的xpath

python">#这里定位百度网页的hao123链接,然后进行点击
#注意,括号里面用单引号
driver.find_element_by_xpath('//*[@id="s-top-left"]/a[2]').click()
python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#这里定位百度网页的hao123链接,然后进行点击
#注意,括号里面用单引号
driver.find_element_by_xpath('//*[@id="s-top-left"]/a[2]').click()

6.通过 Link Text 定位链接(精准的定位 ) 

ps:当元素是一个链接(<a> 标签)时,你可以通过链接的文本内容来定位。

python">#通过q标签内的链接定位改链接,然后点击打开hao123的网页
driver.find_element_by_link_text("hao123").click()

完整的代码

python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#通过a标签内的链接定位改链接,然后点击打开hao123的网页
driver.find_element_by_link_text("hao123").click()

7. 通过 Partial Link Text 定位链接(模糊定位)

LINK_TEXT 类似,但是 partial link text 只需要链接文本的部分内容就可以匹配,适用于链接文本较长的情况。

python">#通过a标签内的链接定位改链接,然后点击打开hao123的网页
driver.find_element_by_partial_link_text("123").click()

完整的代码

python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#通过a标签内的链接定位改链接,然后点击打开hao123的网页
driver.find_element_by_partial_link_text("123").click()

8.通过 CSS 选择器定位

CSS 选择器基于 CSS 样式规则来定位元素,通常比 XPath 更简洁。CSS 选择器可以通过标签、类、ID、属性等组合来定位。

 关键代码

通过类名(.class的值)

ps:注意:这里用的单引号,还有括号里面记得先加上一个.代表这是来自类的

python">#这里通过class的值定位找到百度搜索框,再输入云边的快乐猫
#注意:这里用的单引号,还有括号里面记得先加上一个.代表这是来自类的
driver.find_element_by_css_selector('.s_ipt').send_keys("云边的快乐猫")
 通过id名(#id的值)
python">#2.注意:这里用的单引号,还有括号里面记得先加上一个#代表这是来自id的
driver.find_element_by_css_selector('#kw').send_keys("云边的快乐猫")
通过属性('[name=值]')
python">#单引号,中括号'[name=]'
driver.find_element_by_css_selector('[name=wd').send_keys("云边的快乐猫")
 通过class的值('[class=值]')
python">#单引号,中括号'[class=]'
driver.find_element_by_css_selector('[class=s_ipt]').send_keys("云边的快乐猫")
任意标签内容('[任意标签=对应值]')---好用
python">#单引号,中括号'[任意标签=对应的值]'。这里是打开了百度的一个其中页面
driver.find_element_by_css_selector('[target=_blank]').click()
上级定位('上级标签头>下级标签头')

ps:这个还能上上级,再上级前面套一个上上级就好 

python">#单引号,通过上级定位到下级标签,并输入内容
driver.find_element_by_css_selector('span>input').send_keys("云边的快乐猫")

部分代码

python"># 从Selenium库导入webdriver模块,用于创建浏览器驱动
from selenium import webdriver# 创建一个Chrome浏览器的实例,driver是一个浏览器对象,使用它可以操作浏览器
driver = webdriver.Chrome()# 使用driver.get()方法打开指定的URL,"https://baidu.com/"是你要打开的网页地址
driver.get("https://baidu.com/")# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()#这里通过class的值定位找到百度搜索框,再输入云边的快乐猫
#注意:这里用的单引号,还有括号里面记得先加上一个.代表这是来自类的
driver.find_element_by_css_selector('.s_ipt').send_keys("云边的快乐猫")

三、其他事件

(一)鼠标事件 

要额外导入包使用

from selenium.webdriver.common.action_chains import ActionChains

鼠标点击(click())
python">#点击的地图按钮,进入地图页面
driver.find_element_by_link_text('地图').click()

完整代码

python">#导入模块
from selenium import webdriver
#打开谷歌浏览器
driver = webdriver.Chrome()
# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()
# #打开百度的页面
driver.get("https://www.baidu.com/")
#点击的地图按钮,进入地图页面
driver.find_element_by_link_text('地图').click()

(二)键盘事件

ps:这个要使用的时候类里面导入这个包

python">#导入键盘包
from selenium.webdriver.common.keys import Keys
1.框内输入内容
python">#1.定位百度的输入框,并输入云边的快乐猫这个自定义搜索值
driver.find_element_by_id("kw").send_keys("云边的快乐猫")
2.确定回车键 
python">#相当于按下回车键
driver.find_element_by_id("kw").send_keys(Keys.ENTER)
3.框内全选快捷键
python">#相当于CTRL+A
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')
4.框内剪切快捷键
python">#相当于CTRL+x
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
5.复制粘贴 

 同理,和剪切全选那些一样,改后面的字符就好了,复制是c,粘贴是v

完整代码

python">#导入模块
from selenium import webdriver
#导入键盘包
from selenium.webdriver.common.keys import Keys
import time
#打开谷歌浏览器
driver = webdriver.Chrome()
# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()
# #打开百度的页面
driver.get("https://www.baidu.com/")
#1.定位百度的输入框,并输入云边的快乐猫这个自定义搜索值
driver.find_element_by_id("kw").send_keys("云边的快乐猫")
#休眠一会方便观察
time.sleep(1)
#相当于按下回车键
driver.find_element_by_id("kw").send_keys(Keys.ENTER)
#相当于CTRL+A
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'a')#相当于CTRL+x
driver.find_element_by_id("kw").send_keys(Keys.CONTROL,'x')
#清除框内的内容
# driver.find_element_by_id("kw").send_keys(Keys.TAB)
#休眠等待一会
time.sleep(3)
driver.quit()#关闭整个浏览器

(三)文件上传

上传成功,旁边会显示上传的文件名 

 

 关键代码

driver.定位具体按钮.send_keys(要上传的文件)

python">#定位到按钮位置,并赋值,后面的senk_keys里面的是要上传的文件,加r是为了防止转义
driver.find_element_by_xpath('//*[@id="file"]').send_keys(r"D:\Users\kkk\Downloads\data.xlsx")

全部代码

python">#导入模块
from selenium import webdriver
#导入时间的模块。方便后续使用sleep方法
import time
#打开谷歌浏览器
driver = webdriver.Chrome()
# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()
# #打开百度的页面
#前面加个r代表读的意思,防止\这个符号被编译进去
driver.get(r"D:\Users\kkk\Downloads\upload_file.html")
#定位到按钮位置,并赋值,后面的senk_keys里面的是要上传的文件,加r是为了防止转义
driver.find_element_by_xpath('//*[@id="file"]').send_keys(r"D:\Users\kkk\Downloads\data.xlsx")
#等待几秒确保文件上传成功
time.sleep(5)
driver.quit()#关闭整个浏览器

(四)下拉框处理

点击选择学校这个下拉框,然后这里选择北京大学做为例子 

 

关键代码 

python">#定位到下拉框按钮的位置并赋值
d=driver.find_element_by_xpath('/html/body/form/table/tbody/tr[7]/td[2]/select')
#使用赋值,然后定位到要选择的选项,然后点击
d.find_element_by_xpath('/html/body/form/table/tbody/tr[7]/td[2]/select/option[3]').click()

全部代码

python">#导入模块
from selenium import webdriver
#导入时间的模块。方便后续使用sleep方法
import time
#打开谷歌浏览器
driver = webdriver.Chrome()
# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()
# #打开百度的页面
#前面加个r代表读的意思,防止\这个符号被编译进去
driver.get(r"D:/Users/kkk/Downloads/table.html")
#定位到下拉框按钮的位置并赋值
d=driver.find_element_by_xpath('/html/body/form/table/tbody/tr[7]/td[2]/select')
#使用赋值,然后定位到要选择的选项,然后点击
d.find_element_by_xpath('/html/body/form/table/tbody/tr[7]/td[2]/select/option[3]').click()
#等待几秒便于观察
time.sleep(5)
driver.quit()#关闭整个浏览器

(五)按钮框选择

这个更简单,选择定位到按钮的位置,然后点击就可以了

 

关键代码

python">#定位选择框的位置,然后点击按钮
driver.find_element_by_xpath('/html/body/form/table/tbody/tr[6]/td[2]/input[2]').click()

全部代码

python">#导入模块
from selenium import webdriver
#导入时间的模块。方便后续使用sleep方法
import time
#打开谷歌浏览器
driver = webdriver.Chrome()
# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()
# #打开百度的页面
#前面加个r代表读的意思,防止\这个符号被编译进去
driver.get(r"D:/Users/kkk/Downloads/table.html")
#定位选择框的位置,然后点击按钮
driver.find_element_by_xpath('/html/body/form/table/tbody/tr[6]/td[2]/input[2]').click()
#等待几秒便于观察
time.sleep(5)
driver.quit()#关闭整个浏览器

(六)确认框选择

点击显示确认框,弹框出来了再点击确认按钮,如果觉得太快了,可以设置个sleep睡眠等待便于观察一下 

关键代码

python">#定位弹出框的点击按钮,点击弹出
driver.find_element_by_xpath('/html/body/div/input').click()
#弹出框点击确认按钮
driver.find_element_by_xpath('/html/body').click()

 全部代码

python">#导入模块
from selenium import webdriver
#导入时间的模块。方便后续使用sleep方法
import time
#打开谷歌浏览器
driver = webdriver.Chrome()
# 调用浏览器对象的maxmize_window()方法,将浏览器窗口最大化
driver.maximize_window()
# #打开百度的页面
#前面加个r代表读的意思,防止\这个符号被编译进去
driver.get(r"D:/Users/kkk/Downloads/enter.html")
#定位弹出框的点击按钮,点击弹出
driver.find_element_by_xpath('/html/body/div/input').click()
#弹出框点击确认按钮
driver.find_element_by_xpath('/html/body').click()
#等待几秒确保文件上传成功
time.sleep(5)
driver.quit()#关闭整个浏览器

 四、练习文件获取

方式一:csdn下载上传的文件

https://download.csdn.net/download/m0_52861000/90146557

方式二:文章底部下面扫那个猫

然后去回复就可以拿到了:自动化测试练习

有什么问题都可以评论区留言,看见都会回复的

如果你觉得本篇文章对你有所帮助的,把“文章有帮助的”打在评论区

多多支持吧!!!

点赞收藏评论,当然也可以点击文章底部的红包或者👇订阅付费文章创作支持一下了。抱拳了!

vip文章:http://t.csdn.cn/Uq5j1

bug大全订阅文章http://t.csdn.cn/j6UyR

 


http://www.ppmy.cn/ops/142966.html

相关文章

LruCache(本地cache)生产环境中遇到的问题及改进

问题&#xff1a;单机qps增加时请求摘要后端&#xff0c;耗时也会增加&#xff0c;因为超过了后端处理能力&#xff08;最大qps&#xff0c;存在任务堆积&#xff09;。 版本一 引入LruCache。为了避免数据失效&#xff0c;cache数据的时效性要小于摘要后端物料的更新时间&…

高并发-缓存预热

缓存预热的必要性 缓存预热是为了在系统面临高并发请求时&#xff0c;确保热点数据已经被加载到缓存中&#xff0c;从而提高系统响应速度和稳定性。通过缓存预热&#xff0c;可以避免因数据未命中而导致的数据库压力激增。 典型应用场景 电商系统&#xff1a;在秒杀活动期间&…

火山引擎声音复刻API-2.0

火山引擎声音复刻API-2.0使用解释 付费模式解释&#xff1a; 1.字符版本按照字符付费 2.并发版 是按 并发连接数 或 同时使用量 来收费的付费模式&#xff0c;常见于软件、API 服务、云服务等产品中。 上传音频文件demo代码 import base64 import os import requestshost …

基于单片机的智能化教室环境系统设计

本设计的智能化教室环境系统选用STC89C52做为核心控制器&#xff0c;通过红外传感装置检测教室人数&#xff0c;温度感应模块及光强感应模块检测当前教室内的温度和光照强度&#xff0c;以此来为单片机提供数据来控制灯光与风扇。控制模式设有自动和手动&#xff0c;可调节温度…

优化算法之遗传算法思想和应用实例

优化算法有很多&#xff0c;常用的有粒子群&#xff08;蚁群&#xff09;算法&#xff0c;模拟退火、遗传算法、免疫算法&#xff08;IA&#xff09;、差分进化算法&#xff08;Differential Evolution, DE&#xff09;、梯度下降等。这些算法思想有一些共性&#xff0c;大概是…

汽车租赁系统(数据库存储)

一、系统简介 本系统是一个汽车租赁管理系统&#xff0c;旨在为用户提供便捷的车辆租赁服务。系统包括用户注册、登录、查看车辆信息、租赁车辆、更换车辆、付款、还车等功能&#xff0c;并且管理员可以添加、删除、修改车辆信息以及查看营业额。 二、数据库设计 1. 需求分析…

RK3576 Android14,内存大于4G时UVC应用无法申请内存

最近有个项目需要将Linux虚拟成UVC摄像头&#xff0c;开发过程中遇到一个奇怪的事情&#xff0c;通过V4l2框架接口申请内存时&#xff0c;相同的板子&#xff0c;只是内存一个4G一个8G。4G的内存可以申请成功&#xff0c;8G就不行。提示“内存不足” 内存更大反而内存不足&…

PugiXML,一个高效且简单的 C++ XML 解析库!

嗨&#xff0c;大家好&#xff01;我是一行。今天要给大家介绍 PugiXML&#xff0c;这可是 C 里处理 XML 数据的得力助手。它能轻松地读取、修改和写入 XML 文件&#xff0c;就像一个专业的 XML 小管家&#xff0c;不管是解析配置文件&#xff0c;还是处理网页数据&#xff0c;…