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应用的质量。

相关推荐
awonw6 小时前
[java][框架]springMVC(1/2)
测试工具·postman
迃幵chen11 小时前
wireshark-网络分析工具
网络·测试工具·wireshark
孤蓬&听雨12 小时前
RabbitMQ自动发送消息工具(自动化测试RabbitMQ)
分布式·测试工具·自动化·rabbitmq·自动发送消息
土小帽软件测试12 小时前
jmeter基础01-2_环境准备-Mac系统安装jdk
java·测试工具·jmeter·macos·软件测试学习
qq_4337169515 小时前
测试分层:减少对全链路回归依赖的探索!
自动化测试·软件测试·功能测试·测试工具·回归·pytest·postman
qq_4337169516 小时前
Postman断言与依赖接口测试详解!
自动化测试·软件测试·功能测试·测试工具·mysql·接口测试·postman
如光照16 小时前
Linux与Windows中的流量抓取工具:wireshark与tcpdump
linux·windows·测试工具·网络安全
土小帽软件测试17 小时前
jmeter基础03_汉化jmeter界面
测试工具·jmeter·软件测试学习
小白~小黑20 小时前
软件测试基础十二(python变量进阶)
python·功能测试·测试工具·自动化
程序员小雷1 天前
软件测试基础:单元测试与集成测试
python·功能测试·selenium·测试工具·单元测试·集成测试·压力测试