使用selenium实现自动化测试教程
题目
测试某个网站登录过程,请根据后续说明进行实验,保存日志文本和过程截图作为实验结果。(基本要求是要会运用selenium的八大元素及其定位操作过程)
- 登录某个网站首页,比如 http://www.eteams.cn/
- 点击右上角的“登录”按钮
- 获取到账号输入框的预填信息并打印(用于判断预填信息是否正确)
- 输入账号和密码
- 勾选自动登录的复选框(如果有的话)
- 点击 “登录”按钮登录系统
- 打印出登录后页面的标题信息(用于判断成功登录)
- 关闭浏览器。
实现思路: - 首先输入登录url,用WebDriver模拟打开登录页面;
- 然后找到输入用户名和密码的input框;
- 模拟填写用户名和密码(用户名和密码可以是不正确的);
- 找到点击登录的按钮,模拟点击登录,这样就实现了模拟登录;
- 采用WebDriver中的【By.xpath】方法获取Dom元素;
- webDriver的每次响应操作都要用sleep()函数加入一个时间间隔。
思路讲解
首先肯定是要下载最新版本的chromedriver.exe文件,下载地址chromedriver.exe
然后最需要注意的是,如何选择对应的网站的标签
比如说对于这个登录按钮,需要找到一个他唯一的样式,或者id,这样自动化的时候,才可以精准找到。
比如这个id=top-btn-login,然后写这个代码login_button = driver.find_element(By.ID, "top-btn-login")
,就可以选中了,一定要是唯一性的。
代码编写
下面是python解决这个问题的代码,我建议使用python解决这个问题,因为使用java或者别的的话,会陷入各种依赖的版本问题,很麻烦。
运行结果的话就是,模拟用户自动操作,再自动化测试和爬虫里面非常常用。
from selenium import webdriver
from selenium.webdriver.common.by import By
import time
def main():
# 设置ChromeDriver路径
driver = webdriver.Chrome(executable_path="E:\chromedriver.exe")
# 打开ETeams网站主页
driver.get("http://www.eteams.cn/")
# 通过元素ID查找登录按钮元素,并点击该按钮以打开登录表单
login_button = driver.find_element(By.ID, "top-btn-login")
login_button.click()
time.sleep(2)
# 输入用户名和密码
# 通过XPath查找用户名输入框元素,并输入用户名(将"your_username"替换为实际用户名)
username_input = driver.find_element(By.XPATH, "//input[@type='text' and @class='ui-input']")
username_input.send_keys("your_username")
# 通过XPath查找密码输入框元素,并输入密码(将"your_password"替换为实际密码)
password_input = driver.find_element(By.XPATH, "//input[@type='password' and @class='ui-input']")
password_input.send_keys("your_password")
# 等待2秒以便用户看到已填好的表单
time.sleep(2)
# 点击“登录”按钮
# 通过CSS选择器查找提交/登录按钮,并点击该按钮以完成登录
submit_button = driver.find_element(By.CSS_SELECTOR, "button.ui-btn.ui-btn-primary.ui-btn-middle.ui-btn-inline.weapp-passport-ui-button.weapp-passport-ui-button-md")
submit_button.click()
# 等待5秒以便用户看到已登录页面
time.sleep(5)
# 打印登录后的页面标题
print("已登录页面标题:", driver.title)
# 关闭浏览器
driver.quit()
# 运行主函数
if __name__ == "__main__":
main()