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