Python+Selenium.webdriver实现WEB端UI自动化测试(实例脚本)

        本篇记录基于Python+Selenium.webdriver实现WEB端UI自动化测试,其中测试用例使用excel维护。为了在实际项目种的扩展应用,建议学习webdriver的元素定位方法,欢迎在评论区沟通讨论。

1.项目选取(登录页无验证码校验的项目)

该示例选取的是登录页不需要输入验证码校验的基础页面(考虑到现在大部分项目都是需要进行验证码校验的,后面研究后再出一篇相关的分享。)

2.环境搭建

2.1安装Python

官网目前已经更新到python3.9.7,大家可以到官网下载并安装

安装包地址:Welcome to Python.org

2.2安装Selenium

命令:pip install selenium

或使用pycharm安装

2.3安装浏览器驱动

1.以Google Chrome浏览器为例,打开浏览器--帮助--关于Google Chrome,查看浏览器版本。

2.访问http://chromedriver.storage.googleapis.com/index.html,下载浏览器对应版本号的驱动软件。

3.驱动文件放到python的安装目录下(和python.exe相同目录)。

3.项目示例

 3.1测试数据

包括编号、用例描述、元素定位方法及对应数据,定位到元素后的操作方法及数据。

3.2 通用脚本代码(可复用)

示例脚本:Selenium_UI_Test.py
from selenium import webdriver
from selenium.webdriver.support.select import Select

class Selenium_UI_Test01(object):
    """
    1.8种元素定位方法
    2.quit()-退出,关闭所有标签页;
    3.refresh()-浏览器刷新
    """
    def selemium_find_element(self,driver,method,data):
        if method == "find_element_by_id":
            return driver.find_element_by_id(data)
        elif method == "find_element_by_name":
            return driver.find_element_by_name(data)
        elif method == "find_element_by_class_name":
            return driver.find_element_by_class_name(data)
        elif method == "find_element_by_tag_name":
            return driver.find_element_by_tag_name(data)
        elif method =="find_element_by_link_text":
            return driver.find_element_by_link_text(data)
        elif method == "find_element_by_partial_link_text":
            return driver.find_element_by_partial_link_text(data)
        elif method == "find_element_by_xpath":
            return driver.find_element_by_xpath(data)
        elif method == "":
            return driver.find_element_by_css_selector(data)
        elif method =='refresh':
            return driver.refresh()
        elif method =='quit':
            return driver.quit()
        else:

            print("请检查元素定位方法是否正确!")
    #定位到元素后可执行的操作
    #1.点击和输入:clear()-清空输入框、click()-点击、send_keys()-发送关键字
    def operator_element(self,element,method,data):
        if "click" in method:
            element.click()
        elif "send_keys" in method:
            element.send_keys(data)
        elif "clear" in method:
            element.clear()
        elif 'select' in method:
            Select(element).select_by_index(data)
        else:
            print("请检查操作方法是否正确!")

3.3测试用例脚本

示例脚本:

Selenium_UI_Test_gsc.py

读取excel中的测试用例,调用通用脚本中定义的方法,执行测试用例。

from openpyxl import load_workbook
from selenium import webdriver
import common.Selenium_UI_Test as SUT
sut = SUT.Selenium_UI_Test01()
import time
t = time.strftime("%Y%m%d%H%M")

driver = webdriver.Chrome()
driver.get("https://www.52shici.com/")
wb = load_workbook("..\\datas\我爱古诗词UI测试.xlsx")
ws = wb.worksheets[0]
for row in ws.iter_rows(min_row=2,max_row=ws.max_row):#跳过首行表头信息
    method1= row[2].value
    data1 = row[3].value
    method2 = row[4].value
    data2 = row[5].value
    element = sut.selemium_find_element(driver,method1,data1)
    result=sut.operator_element(element,method2,data2)

    row[6].value="pass"

wb.save(f"..\\Reports\我爱古诗词UI测试_{t}.xlsx")

3.4执行结果

自动打开浏览器,跳转到登录页面并完成登录,自动输入页面信息并提交。

 自动生成excel测试结果

  • 22
    点赞
  • 168
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 好的,以下是一个简单的示例代码: ```python from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 设置浏览器驱动路径 driver_path = "chromedriver.exe" # 创建 Chrome 浏览器对象 driver = webdriver.Chrome(driver_path) # 打开网页 url = "https://www.example.com/login" driver.get(url) # 找到用户名和密码输入框,并输入信息 username = driver.find_element_by_id("username") password = driver.find_element_by_id("password") username.send_keys("your_username") password.send_keys("your_password") # 模拟点击登录按钮 login_button = driver.find_element_by_id("login_button") login_button.click() # 等待 5 秒钟,等待页面加载完成 time.sleep(5) # 打开用户列表页面 user_list_url = "https://www.example.com/userlist" driver.get(user_list_url) # 获取所有用户信息 user_list = driver.find_elements_by_xpath("//div[@class='user-info']") # 输出用户信息 for user in user_list: print(user.text) # 关闭浏览器 driver.quit() ``` 请注意,这只是一个示例代码,实际应用中可能需要根据具体情况进行修改。同时,为了保护网站和用户隐私,建议在实际使用中遵守网站的规定,并确保自己的行为合法合规。 ### 回答2: Python编写Selenium自动化测试代码可以实现模拟登录并爬取用户列表信息。首先,我们需要安装Selenium库,并确保浏览器驱动已安装并配置好。 首先,创建一个Python脚本,导入必要的库和模块。 ``` from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC ``` 接下来,设置浏览器驱动路径并实例webdriver对象。 ``` driver_path = "/path/to/chromedriver" # 根据实际驱动路径进行更改 driver = webdriver.Chrome(driver_path) ``` 通过webdriver对象可以进行各种页面操作,例如打开登录页面。 ``` driver.get("https://example.com/login") # 替换为实际的登录页面链接 ``` 输入用户名和密码,并点击登录按钮。 ``` username_input = driver.find_element_by_name("username") # 替换为实际的用户名输入框元素 password_input = driver.find_element_by_name("password") # 替换为实际的密码输入框元素 login_button = driver.find_element_by_id("login-button") # 替换为实际的登录按钮元素 # 输入用户名和密码 username_input.send_keys("your_username") # 替换为实际的用户名 password_input.send_keys("your_password") # 替换为实际的密码 # 点击登录按钮 login_button.click() ``` 接下来,等待页面加载完毕,并找到用户列表所在的元素。 ``` # 等待页面加载完毕 wait = WebDriverWait(driver, 10) user_list = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "ul.user-list"))) # 替换为实际的用户列表元素选择器 ``` 最后,通过用户列表元素获取所有用户信息。 ``` users = user_list.find_elements(By.CSS_SELECTOR, "li.user") # 替换为实际的用户元素选择器 # 遍历用户列表并打印用户信息 for user in users: username = user.find_element(By.CSS_SELECTOR, "span.username").text # 替换为实际的用户名元素选择器 email = user.find_element(By.CSS_SELECTOR, "span.email").text # 替换为实际的邮箱元素选择器 print(f"Username: {username}, Email: {email}") ``` 这样,就完成了使用Python编写Selenium自动化测试代码实现模拟登录并爬取用户列表信息的过程。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值