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

相关推荐
99乘法口诀万物皆可变23 分钟前
CANoe_TestModule截图功能TestReportAddWindowCapture
测试工具
99乘法口诀万物皆可变10 小时前
ODX相关基础知识普及
测试工具·测试用例
今天好像不上班11 小时前
软件验证与确认实验二-单元测试
测试工具·算法
wdxylb1 天前
Pyhton爬虫使用Selenium实现浏览器自动化操作抓取网页
爬虫·selenium·测试工具
码力码力我爱你2 天前
C++ WebDriver扩展
c++·selenium·测试工具
能摆一天是一天3 天前
Python 爬虫 根据ID获得UP视频信息
开发语言·爬虫·python·selenium
土小帽软件测试3 天前
fiddler抓包16_自动重定向(mock数据)
测试工具·fiddler·抓包·软件测试学习
Kakaxiii3 天前
UMLS的api调用(Postman)
人工智能·深度学习·测试工具·自然语言处理·postman
可遇_不可求3 天前
使用Charles进行Mock数据:高效提升前端交互测试效率
测试工具
NPE~4 天前
爬虫入门 & Selenium使用
爬虫·python·selenium·测试工具·xpath