Python Selenium4.3.0(新语法) web自动化测试工具

这篇具有很好参考价值的文章主要介绍了Python Selenium4.3.0(新语法) web自动化测试工具。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 介绍
Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。

支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera,Edge等

这个工具的主要功能包括:测试与浏览器的兼容性——测试应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归测试检验软件功能和用户需求。

中文教程:http://www.selenium.org.cn/

2 入门准备
1、安装

pip install selenium

2、下载浏览器驱动

(1)谷歌驱动

http://chromedriver.storage.googleapis.com/index.html

# linux chrome
https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

(2)火狐驱动

https://github.com/mozilla/geckodriver/releases/

3、测试代码
可以指定路径,或将驱动放到当前文件夹

from selenium import webdriver

url = "https://www.baidu.com/"

# 加载驱动
# driver = webdriver.Firefox()   # Firefox浏览器
# driver = webdriver.Firefox("驱动路径")
driver = webdriver.Chrome()    # Chrome浏览器
# driver = webdriver.Ie()        # Internet Explorer浏览器
# driver = webdriver.Edge()      # Edge浏览器
# driver = webdriver.Opera()     # Opera浏览器
# driver = webdriver.PhantomJS()   # PhantomJS

# 打开网页
driver.get(url)

3 等待策略
3.1 显式等待
显式等待使WebDriver等待某个条件成立时继续执行,否则在达到最长事件抛出超时异常(TimeoutException)

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("https://www.baidu.com")

element = WebDriverWait(driver, 3, 0.5).until(
    EC.presence_of_element_located((By.ID, "kw"))
)
element.send_keys('python')
driver.quit()

WebDriverWait类有WebDriver提供,在设置事件内,默认每间隔一段时间检测一次当前页面元素是否存在,如果超时则未检测到,则抛出异常。

WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)

driver:浏览器驱动
timeout:最长超时时间,默认单位为s
poll_frequency:超时后的异常信息,默认情况下抛–NoSuchElementException异常。
WebDriverWait()一般由until()或until_not()方法配合使用,下面是until()和until_not()方法的说明。

until(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为True。
until_not(method, message=‘’) 调用该方法提供的驱动程序作为一个参数,直到返回值为False。
3.2 隐式等待
如果某些元素不是立即可用的,隐式等地啊是告诉WebDriver去等待一定时间后去查找元素。默认等待时间为0秒,一旦设置该值,隐式等待是设置该WebDriver的实例的生命周期。

from selenium import webdriver
from selenium.webdriver.common.by import By

# 加载驱动
driver = webdriver.Chrome()  # Chrome浏览器

url = "https://www.baidu.com/"
driver.set_window_size(1000, 900)

# 隐式等待
driver.implicitly_wait(10)  # seconds

driver.get(url)

driver.find_element(By.ID, "kw").clear()
driver.find_element(By.ID, "kw").send_keys("Python")
driver.find_element(By.ID, "su").click()

4 浏览器控制
1、控制浏览器窗口大小

driver.set_window_size(900, 700)

2、浏览器前进、后退

driver.forward()
driver.back()

3、刷新

driver.refresh()

5 元素定位

# 通过id 查询首个满足条件
driver.find_element(by=By.ID, value="username")
# 通过class 查询所有满足条件 [列表形式返回]
driver.find_elements(by=By.CLASS_NAME, value="item")
# 通过TAG_NAME
driver.find_elements(by=By.TAG_NAME, value="a")
driver.find_elements(by=By.TAG_NAME, value="a").get_attribute("href")

参数一by :By.ID、By.CLASS_NAME、By.NAME
参数二value: 指定 ID、name或Class的值

4 具体使用
3.1 元素查找、定位
3.3 Webelement常用方法
1、点击和输入

driver.find_element(By.ID, "kw").clear()  				# 清除文本
driver.find_element(By.ID, "kw").send_keys("Python")    # 模拟按键输入
driver.find_element(By.ID, "su").click()  				# 点击元素

2、提交
模拟输入框回车操作

新版本中未测试出功能

3、其他

size:返回元素尺寸
text:获取元素的文本
get_attribute(name):获取属性值
is_displayed:设置元素是否用户可见

总结:

from selenium import webdriver

# 加载驱动
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()  # Chrome浏览器

# url = "https://read.douban.com/ebook/7821748/?dcs=search"
url = "https://www.baidu.com/"
driver.set_window_size(900, 700)
# 打开网页
driver.get(url)

driver.find_element(By.ID, "kw").clear()  # 清除文本
driver.find_element(By.ID, "kw").send_keys("Python")  # 模拟按键输入
driver.find_element(By.ID, "su").click()  # 点击元素

4 鼠标操作
selenium鼠标事件用的是ActionChains,在调用的时候并不会执行,而是在perform()方法被调用后执行。

引用 ActionCharins类

from selenium.webdriver.common.action_chains import ActionChains

4.1 单击/双击/鼠标右击

url = "https://www.baidu.com/"

实例:点击百度图片超链接

from selenium import webdriver
# 引用ActionChains类
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.common.by import By

url = "https://www.baidu.com/"

driver = webdriver.Chrome()  # Chrome浏览器

# 隐式等待
driver.implicitly_wait(10)  # seconds

# 打开网页
driver.get(url)
rc = driver.find_element(by=By.LINK_TEXT, value="图片")
# 右击
# ActionChains(driver).context_click(rc).perform()
# 双击
# ActionChains(driver).double_click(rc).perform
# 单击
ActionChains(driver).click(on_element=rc).perform()

4.2 移动元素
这个测试案例并不是很好,各位大佬如果有的话可以留言。

url = "https://www.baidu.com/"

# 移动元素
element = driver.find_element(By.LINK_TEXT, "图片")
target = driver.find_element(By.LINK_TEXT, "更多")
ActionChains(driver).drag_and_drop(element, target).perform()

5 键盘事件
全选 Ctrol+A :send_keys(Keys.CONTROL, ‘a’)
复制 Ctrol+C:send_keys(Keys.CONTROL, ‘c’)
剪切 Ctrol+X:send_keys(Keys.CONTROL, ‘x’)
粘贴 Ctrol+V:send_keys(Keys.CONTROL, ‘v’)

键盘 F1:send_keys(Keys.F1)

键盘 F12:send_keys(Keys.F12)

删除键 BackSpace:send_keys(Keys.BACK_SPACE)

空格键 Space:send_keys(Keys.SPACE)

制表键 Tab:send_keys(Keys.TAB)

Esc键 Tab:send_keys(Keys.ESCAPE)

回车键 ENTER:send_keys(Keys.ENTER)

5.1 输入

from selenium import webdriver

# 引入 ActionChains 类
from selenium.webdriver import Keys

# 加载驱动
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()  # Chrome浏览器

url = "https://www.baidu.com/"
driver.set_window_size(1000, 900)

driver.get(url)

driver.find_element(By.ID, "kw").clear()
driver.find_element(By.ID, "kw").send_keys("Pythonn")
driver.find_element(By.ID, "kw").send_keys(Keys.BACK_SPACE)

5.2 组合按键

# Ctrl+a
ActionChains(driver).key_down(Keys.CONTROL).send_keys("a").key_up(Keys.CONTROL).perform()

6 获取页面信息

# 获取当前页面URL
now_url = driver.current_url
# 获取当前页面title
title = driver.title

8 在不同窗口和框架之间移动

9 警告框处理

10 下拉选择框

11 文件上传

driver.find_element_by_name("file").send_keys('D:\\upload_file.txt')

12 cookie操作
WebDriver操作cookie的方法:

get_cookies(): 获得所有cookie信息。
get_cookie(name): 返回字典的key为“name”的cookie信息。
add_cookie(cookie_dict) : 添加cookie。“cookie_dict”指字典对象,必须有name 和value 值。
delete_cookie(name,optionsString):删除cookie信息。“name”是要删除的cookie的名称,“optionsString”是该cookie的选项,目前支持的选项包括“路径”,“域”。
delete_all_cookies(): 删除所有cookie信息

13 调用JavaScript代码

# 获取网页标题
driver.execute_script('return document.title;')

14 关闭浏览器文章来源地址https://www.toymoban.com/news/detail-821631.html

# 关闭单个窗口
driver.close()

# 关闭所有窗口
driver.quit()

到了这里,关于Python Selenium4.3.0(新语法) web自动化测试工具的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 自动化测试之八大元素定位方式(python3.10+selenium4)

    元素的定位是自动化测试核心。要操作一个对象,首先要识别定位或找到这个对象。为了实现网页整体布局,我们先要知道,一个元素,是如何定位到页面上的某个位置的,这就是元素定位。 系统环境 Windows 11 📌 python3.10.5 🔖 selenium 4.8.0 🚩 注意:以下每种定位方式均有一

    2024年02月03日
    浏览(43)
  • 浏览器常用基本操作之python3+selenium4自动化测试(基础篇)

    1、打开指定的网页地址 我们使用selenium进行自动化测试时,打开浏览器之后,第一步就是让浏览器访问我们指定的地址,可使用get方法实现 1 2 3 from selenium import webdriver driver = webdriver.Edge() driver.get( \\\'https://www.baidu.com/\\\' )   # 本行用于访问指定的地址 2、获取当前页面url 我们在

    2024年02月01日
    浏览(49)
  • Web自动化测试-Selenium语法入门到精通

    前言 说到自动化测试,就不得不提大名鼎鼎的Selenium。Selenium 是如今最常用的自动化测试工具之一,支持快速开发自动化测试框架,且支持在多种浏览器上执行测试。 Selenium学习难度小,开发周期短。对测试人员来说,如果你编程经验不足,python + Selenium 是个很好的选择。语

    2024年02月11日
    浏览(34)
  • Selenium4自动化测试框架

    Selenium 介绍 Selenium 是目前用的最广泛的 Web UI 自动化测试框架,核心功能就是可以在多个浏览器上进行自动化测试,支持多种编程语言,目前已经被 google,百度,腾讯等公司广泛使用。 1、配置 google 驱动的环境变量,如果不配置需要在代码中指定驱动位置。 2、eclipse 中导入

    2024年02月03日
    浏览(33)
  • web UI 自动化测试:Selenium 语法详解 史上最全

    selenium主要是用来做自动化测试,支持多种浏览器,爬虫中主要用来解决JavaScript渲染问题。模拟浏览器进行网页加载 一、声明浏览器对象 二、访问页面并获取网页html 三、查找元素 单个元素 常用的查找方法 也可以使用通用的方法 四、元素交互操作-搜索框传入进行自

    2024年02月21日
    浏览(49)
  • selenium4 自动化测试--环境安装和基础操作

    最近也有很多人私下问我,selenium学习难吗,基础入门的学习内容很多是3以前的版本资料,对于有基础的人来说,3到4的差别虽然有,但是不足以影响自己,但是对于没有学过的人来说,通过资料再到自己写的代码,发现有些东西没有,有些方法又不相同,导致脚本不能运行

    2024年01月21日
    浏览(35)
  • 【自动化测试】基于Selenium + Python的web自动化框架

    Selenium是一个基于浏览器的自动化工具,她提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid:  1、Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例如java,p

    2024年02月07日
    浏览(49)
  • Python自动化实战之使用Selenium进行Web自动化详解

    为了完成一项重复的任务,你需要在网站上进行大量的点击和操作,每次都要浪费大量的时间和精力。Python的Selenium库就可以自动化完成这些任务。 在本篇文章中,我们将会介绍如何使用Python的Selenium库进行Web自动化,以及如何将它应用于实际项目中。如果你是一名Python爱好

    2024年02月13日
    浏览(37)
  • python基于Selenium的web自动化框架

    1 什么是selenium Selenium 是一个基于浏览器的自动化工具,它提供了一种跨平台、跨浏览器的端到端的web自动化解决方案。Selenium主要包括三部分:Selenium IDE、Selenium WebDriver 和Selenium Grid: Selenium IDE:Firefox的一个扩展,它可以进行录制回放,并可以把录制的操作以多种语言(例

    2024年02月02日
    浏览(45)
  • 【web自动化】selenium+python八大元素定位

    推荐:b站软件测试老白 注意点 1.有id才能能使用id定位 2.id不能重复 通过百度页面,演示如何查找id确定id是否重复,其他方式定位也可以这样搜索 代码如下(示例): 如果有多个class_name,可以使用 find_elements 和取下标的方式 例如:打开哔哩哔哩页面,有番剧,电影等等,他

    2024年01月21日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包