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

相关推荐
niuniu_6665 小时前
简单的自动化场景(以 Chrome 浏览器 为例)
运维·chrome·python·selenium·测试工具·自动化·安全性测试
suimeng619 小时前
ChromeDriver的常用方法
java·selenium
niuniu_6661 天前
Selenium 性能测试指南
selenium·测试工具·单元测试·测试·安全性测试
莓事哒1 天前
selenium和pytessarct提取古诗文网的验证码(python爬虫)
爬虫·python·selenium·测试工具·pycharm
suimeng61 天前
基本元素定位(findElement方法)
java·selenium
mywpython1 天前
mac 最新的chrome版本配置selenium的方式
chrome·python·selenium·macos
软件测试曦曦1 天前
如何使用Python自动化测试工具Selenium进行网页自动化?
自动化测试·软件测试·python·功能测试·测试工具·程序人生·自动化
freejackman1 天前
Selenium框架——Web自动化测试
python·selenium·测试
互联网杂货铺1 天前
黑盒测试、白盒测试、集成测试和系统测试的区别与联系
自动化测试·软件测试·python·功能测试·测试工具·单元测试·集成测试
Feng.Lee2 天前
聊一聊缓存如何进行测试
功能测试·测试工具·缓存