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

相关推荐
惜.己4 小时前
Jmeter中的断言(二)
测试工具·jmeter·1024程序员节
互联网杂货铺9 小时前
自动化测试基础知识总结
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
懒笑翻12 小时前
Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例
运维·selenium·自动化
go_to_hacker12 小时前
容器安全检测和渗透测试工具
测试工具·安全
惜.己14 小时前
Jmeter中的断言(四)
测试工具·jmeter·1024程序员节
半桶水专家15 小时前
tcpdump抓取流量包详解
网络·测试工具·tcpdump
小流年 °21 小时前
抓包工具Wireshark
网络·测试工具·wireshark
qq_433716951 天前
Selenium+Pytest自动化测试框架 ------ 禅道实战
自动化测试·软件测试·selenium·单元测试·pytest·接口测试·压力测试
LucianaiB1 天前
丹摩|丹摩助力selenium实现大麦网抢票
selenium·测试工具