测试专题 -- 使用selenium自动化测试工具浏览器对浏览器进行测试

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本


前言

上一章中我们讲解了测试的简单了解,其实下一章我们本该讲解一下测试的概念篇的,由于我担心测试的概念过于枯燥,所以我们先对测试工具进行游玩一下,以对测试自动化工具有一定的了解先。


一、准备环境与软件

这边使用的是Python、以及PyCharm软件进行测试的。安装教程可以在网上查询。

二、第三方库的安装与使用

1.安装自动化环境库(webdriver-manager)

我们使用selenium是需要使用pip install webdriver-manager

pip install webdriver-manager

在这里插入图片描述
这样就是安装成功了。
webdriver-manger是管理selenium库的软件,安装了webdriver-manger后续只要也准备好selenium库,无需为了安装指定的浏览器驱动器因版本不同的麻烦而导致无法驱动浏览器的问题导致苦恼,webdriver-manger可以统一去识别并下载指定的浏览器驱动器。

2.安装selenium库

安装selenium浏览器驱动器库

pip install selenium==4.0.0

因为selenium版本很多,我们就统⼀使⽤selenium 4.0.0版本

2.查询安装库是否成功

方法一

我们安装好库后可以使用指令查找是否下载成功
可以使用以下指令

pip list | findstr selenium
pip list | findstr webdriver-manager

在这里插入图片描述

方法二

在Pycharm中在设置里Python解释器中查找是否存在第三方库文件
在这里插入图片描述
这里需要注意: 创建项目时, 一定一定要选择自定义环境,并且是本地已有的Python文件
在这里插入图片描述
这样项目才能获取到下载的pip下载的库文件。
环境以及程序都准备好之后我们就开始代码啦。

代码的测试

这边有一个代码的测试,是使用Chrome浏览器进行测试的。

from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
#驱动程序管理的⾃动化
#创建驱动对象
#1.打开浏览器
driver = 
webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()))
#2.输⼊百度⽹址:https://www.baidu.com
driver.get("https://www.baidu.com")
#3、找到输⼊框并输⼊“迪丽热巴”
driver.find_element(By.CSS_SELECTOR,"#kw").send_keys("迪丽热巴")
#4、找到“百度⼀下”按钮并点击
driver.find_element(By.CSS_SELECTOR,"#su").click()
#5、关闭浏览器
driver.quit()

在这里插入图片描述
如果能成功这样说明就成功啦!!!
不过很可惜,我这边就没有这么幸运啦,程序一直处于阻塞的状态,好!作为程序员就要时刻准备好解决bug的心态。

三、bug问题的解决过程

Chrome的标准安装与非标准安装
我首先查询到我的Chrome的安装路径是在AppData\Roaming下,我查询得出这是一个非标准位置。
正常情况下是要在标准路径下的(如:C:\Program Files\Google\Chrome\Application\chrome.exe
这就是为什么一直处于阻塞的状态!那是因为驱动器根本就没找到Chrome文件。
因为当 Chrome 安装在标准路径时,Selenium 可以自动找到它的。

Selenium 的查找机制
Selenium 默认会在以下位置查找 Chrome:
Windows:
C:\Program Files\Google\Chrome\Application\chrome.exe
C:\Program Files (x86)\Google\Chrome\Application\chrome.exe
如果 Chrome 不在这些默认路径中,Selenium 就找不到它

解决办法一,使用binary_location指定Chrome浏览器路径

具体代码

from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.chrome import ChromeDriverManager
import time

try:
    # 创建 Chrome 选项
    chrome_options = webdriver.ChromeOptions()
    
    # 指定 Chrome 浏览器的路径(根据您的实际安装路径修改)
    chrome_options.binary_location = r"C:\Program Files\Google\Chrome\Application\chrome.exe"  # Windows 默认路径
    # 或者
    # chrome_options.binary_location = r"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe"  # 另一个可能的路径
    
    # 添加其他选项
    chrome_options.add_argument('--start-maximized')
    chrome_options.add_argument('--disable-gpu')
    chrome_options.add_argument('--no-sandbox')
    
    # 创建 Chrome 驱动服务
    chrome_service = Service(ChromeDriverManager().install())
    
    # 创建 Chrome 驱动实例
    driver = webdriver.Chrome(
        service=chrome_service,
        options=chrome_options
    )
    
    # 访问百度
    driver.get("https://www.baidu.com")
    
    # 找到输入框并输入"迪丽热巴"
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("迪丽热巴")
    
    # 找到"百度一下"按钮并点击
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    
    # 等待几秒查看结果
    time.sleep(3)
    
except Exception as e:
    print(f"发生错误: {str(e)}")
finally:
    # 关闭浏览器
    if 'driver' in locals():
        driver.quit()

解决方法二

重新安装Chrome浏览器为标准安装,并且是在默认位置下才可以

四、使用Edge浏览器测试

我这边也编写了Edge浏览器的测试代码,方便大家去测试

from selenium import webdriver
from selenium.webdriver.edge.service import Service
from selenium.webdriver.common.by import By
from webdriver_manager.microsoft import EdgeChromiumDriverManager
import time

try:
    # 创建 Edge 选项
    edge_options = webdriver.EdgeOptions()
    
    # 添加其他选项
    # 添加启动最大化选项
    edge_options.add_argument('--start-maximized')
    # 禁用GPU加速
    edge_options.add_argument('--disable-gpu')
    # 禁用沙盒模式
    edge_options.add_argument('--no-sandbox')
    # 启用eager模式
    edge_options.page_load_strategy = 'eager'
    
    # 创建 Edge 驱动服务
    edge_service = Service(EdgeChromiumDriverManager().install())
    
    # 创建 Edge 驱动实例
    driver = webdriver.Edge(
        service=edge_service,
        options=edge_options
    )
    
    # 访问百度
    driver.get("https://www.baidu.com")
    
    # 找到输入框并输入"迪丽热巴"
    driver.find_element(By.CSS_SELECTOR, "#kw").send_keys("迪丽热巴")
    
    # 找到"百度一下"按钮并点击
    driver.find_element(By.CSS_SELECTOR, "#su").click()
    
    # 等待几秒查看结果
    time.sleep(3)
    
except Exception as e:
    print(f"发生错误: {str(e)}")
finally:
    # 关闭浏览器
    if 'driver' in locals():
        driver.quit()

总结

这就是本章的selenium自动化测试工具的入门了解,后续我们会对代码中的接口以及方法进行细化的讲解,也会给大家测试概念篇进行补充的,请尽情期待。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值