Form表单操作全攻略:自动化测试中的艺术

引言

在Web应用的自动化测试中,对Form表单的操作是构建有效测试案例的关键。Form表单是用户与Web应用进行交云的核心组件,它们用于登录、注册、搜索等场景。因此,精通Form表单的操作对于模拟真实用户行为、确保应用质量至关重要。本文将通过详细的伪代码示例,展示如何熟练地操作Form表单,帮助您提升自动化测试技能。

案例背景

假设我们面对一个具有登录功能的Web应用,我们的任务是通过自动化测试脚本实现登录操作的模拟。登录表单包括用户名和密码输入框以及提交按钮。

页面代码如下:

html 复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>熟练掌握form表单操作步骤</title>
</head>
<body>
<form action="javascript:alert('hello')">
Username: <input type="text" name="username" id="username"><br>
Password: <input type="password" name="password" id="password"><br>
<input type="submit" value="submit" id="submit">
</form>
</body>
</html>

测试代码如下:

python 复制代码
#!/usr/bin/python3
# coding=utf-8
"""
@author: Jeffky
@file: demo6.py
@time: 2024-6-13 15:37
"""
import os.path
from selenium import webdriver
from time import sleep
from selenium.webdriver.common.by import By

class TestCase(object):
    def __init__(self):
        self.driver = webdriver.Chrome()
        path = os.path.dirname(os.path.abspath(__file__))
        file_path = 'file:///' + path + os.sep + 'forms.html'
        self.driver.get(file_path)
        sleep(2)

    def test_login(self):
        # 定位用户名输入框并输入admin
        username = self.driver.find_element(By.ID, 'username')
        username.send_keys('admin')
        # 定位密码输入框并输入123456
        password = self.driver.find_element(By.ID, 'password')
        password.send_keys('123456')
        sleep(2)
        print(username.get_attribute('value'))
        print(password.get_attribute('value'))
        # 点击提交按钮
        self.driver.find_element(By.ID, 'submit').click()
        sleep(2)
        # 接受弹窗
        self.driver.switch_to.alert.accept()
        sleep(2)
        # 清空用户名和密码输入框
        username.clear()
        password.clear()
        sleep(2)

if __name__ == '__main__':
    case = TestCase()
    case.test_login()
1. 定位元素

在Selenium中,定位Form表单中的元素是首要步骤。我们可以通过多种方式来定位元素,包括ID、名称、XPath等。

示例代码:
python 复制代码
# 通过ID定位用户名和密码输入框
username_input = driver.find_element(By.ID, "username")
password_input = driver.find_element(By.ID, "password")

# 定位提交按钮
submit_button = driver.find_element(By.XPATH, "//button[text()='submit']")
2. 填充表单

定位到元素后,使用send_keys方法模拟键盘输入,填充表单数据。

示例代码:
python 复制代码
# 在用户名和密码输入框中输入数据
username_input.send_keys("admin")
password_input.send_keys("123456")
3. 提交表单

填充完表单后,模拟用户点击提交按钮或通过JavaScript代码提交表单。

示例代码:
python 复制代码
# 点击提交按钮
submit_button.click()

# 或者使用JavaScript提交表单
driver.execute_script("document.getElementById('login_form').submit()")
4. 验证结果

提交表单后,验证页面是否正确响应,如检查页面标题、URL、特定元素的存在等。

示例代码:
python 复制代码
# 验证页面标题是否包含预期文本
assert driver.title == "Welcome, admin"

# 验证登录成功后的特定元素是否存在
assert driver.find_element(By.ID, "success_message")
5. 处理表单重置

为了进行多次测试,我们需要在每次测试后重置表单。这可以通过清除输入框内容和选择默认选项来实现。

示例代码:
python 复制代码
# 清空用户名和密码输入框
username_input.clear()
password_input.clear()

# 或者通过JavaScript重置整个表单
driver.execute_script("document.getElementById('login_form').reset()")
总结

通过上述步骤,我们可以模拟真实用户在Web应用中对Form表单的操作,这是自动化测试中不可或缺的一环。掌握Form表单的操作不仅能帮助我们发现应用中的缺陷,还能确保应用在实际使用中的用户体验。自动化测试工程师应不断实践这些操作,以提高测试的效率和准确性,从而确保Web应用的质量。

相关推荐
2501_924064116 小时前
如何测试接口最大并发量及推荐实用工具
测试工具
玩转数据库管理工具FOR DBLENS7 小时前
DBLens:开启数据库管理新纪元——永久免费,智能高效的国产化开发利器
数据结构·数据库·测试工具·数据库开发
微尘hjx9 小时前
【目标检测软件 01】YOLO识别软件功能与操作指南
人工智能·测试工具·yolo·目标检测·计算机视觉·ai·pyqt
测试人社区-千羽10 小时前
Apple自动化测试基础设施(XCTest/XCUITest)面试深度解析
运维·人工智能·测试工具·面试·职场和发展·自动化·开源软件
测试人社区—小叶子11 小时前
移动开发新宠:用Flutter 4.0快速构建跨平台应用
运维·网络·人工智能·测试工具·flutter·自动化
数据科学小丫12 小时前
浏览器 driver (Chrome & Edge)驱动安装、Selenium 安装,使用Selenium进行网页自动化操作与数据抓取(Edge)
selenium·测试工具·自动化
测试199812 小时前
Selenium(Python web测试工具)基本用法详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
测试人社区-千羽13 小时前
AI测试中的伦理考虑因素
运维·人工智能·opencv·测试工具·数据挖掘·自动化·开源软件
TDengine (老段)13 小时前
TDengine 新性能基准测试工具 taosgen
大数据·数据库·物联网·测试工具·时序数据库·tdengine·涛思数据