本期内容
禅道建立新用户
参考技术点,定位技术 断言技术 获取标题技术
• 下拉,select option,滚动js
• 操作下拉选择框-Select:Select(driver.find_element_by_id(“role”)).select_by_visible_text("测试")
• 滚动条:driver.execute_script("window.scrollBy(300,3000)")
如果忘了 怎么配置环境 可以看第一期文章 来回忆下
链接: Python Selenium WebDriver 环境搭建 测试bing篇
这里也有博主写的八大定位和常识
链接: 自动化测试Selenium webdriver八大定位 和基本常识
1.我们要先登录禅道 在里面添加用户
下载禅道后 会给你一个管理员账号 自行填写即可
2.尝试登录禅道
import time
from selenium import webdriver
from selenium.webdriver.common.by import By
# #设置chrome的选项值
chrome_options = webdriver.ChromeOptions()
# #选项中添加扩展选项 :扩展切换,允许激活 自动化。
chrome_options.add_experimental_option("excludeSwitches", ['enable-automation'])
# #将选项配置options在打开浏览器时加载进去
driver = webdriver.Chrome("E:\selenium_project\driver\chromedriver.exe",options=chrome_options)
# driver = webdriver.Chrome("E:\selenium_project\driver\chromedriver.exe")
# 进入zentao
driver.get("http://114.116.97.187:1080/zentao/user-login.html")
#用class方式定位
# 登录名
# driver.find_element(By.NAME,"accout").send_keys("admin")
driver.find_element(By.CLASS_NAME, "form-control").send_keys("登录名")
# 密码
driver.find_elements(By.CLASS_NAME, "form-control")[1].send_keys("密码")
time.sleep(1)
#元素截图 定位的是哪个元素 就截取那里
ele = driver.find_element(By.NAME,"account")
ele.screenshot("username.png")
#• 判断信息:判断用户名文本框是否可见。is_displayed()
assert ele.is_displayed() is True
assert ele.is_enabled() is True
#• 获得信息:获得用户名文本框的属性class的值,
print(ele.get_attribute("class"))
print(ele.get_attribute("type"))
# 登录
driver.find_element(By.ID, "submit").click()
time.sleep(1)
#获取href 超链接值
a_eles=driver.find_elements(By.TAG_NAME,"a")
for ele in a_eles:
print(ele.get_attribute("href"))
# 定位 验证 断言
time.sleep(1)
print(driver.title)
assert driver.title == "我的地盘 - 禅道"
print(driver.current_url)
assert "http://114.116.97.187:1080/zentao/my/" == driver.current_url
assert "添加你要验证的元素" in driver.find_element(By.LINK_TEXT, "添加你要验证的元素").text
print("--------------------------------------------------------------------")
# 退出
# driver.find_element(By.LINK_TEXT,"退出").click()
显然已经登录成功啦
3.接下来 试一试 登录进去 并且添加用户 保存用户 查看用户是否添加成功
# 注册
driver.find_element(By.LINK_TEXT, "组织").click()
# 注册部门
driver.find_element(By.LINK_TEXT, "部门").click()
#创建部门
time.sleep(1)
driver.find_element(By.NAME, "depts[]").send_keys("xxx")
#设置滚动条
driver.execute_script("window.scrollBy(300,3000)")
time.sleep(1)
#保存部门
driver.find_element(By.ID, "submit").click()
time.sleep(1)
#添加用户
driver.find_element(By.LINK_TEXT, "添加用户").click()
time.sleep(1)
# 选择部门
driver.find_element(By.ID,"dept_chosen").click()
time.sleep(1)
driver.find_element_by_xpath("//*[@id='dept_chosen']/div/ul/li[2]").click()
# 用户名
driver.find_element(By.NAME, "account").send_keys("ChanDao")
# 真实姓名
driver.find_element(By.NAME, "realname").send_keys("ChanDao")
#设置滚动条
driver.execute_script("window.scrollBy(300,3000)")
time.sleep(1)
# 密码
driver.find_element(By.ID, "password1").send_keys("123456.")
# 重新输入密码
driver.find_element(By.ID, "password2").send_keys("123456.")
#入职时间
#
driver.find_element(By.ID,"join").clear()
driver.find_element(By.ID,"join").send_keys("2022-07-07",Keys.ENTER)
time.sleep(1)
# 职位
#第一种Select(driver.find_element_by_id("role")).select_by_visible_text("高层管理")
#第二种
role = driver.find_element(By.ID,"role")
#测试下1是不是option--研发
Select(role).select_by_index(1)
time.sleep(1)
#邮箱
driver.find_element(By.ID,"email").send_keys("xxx@qq.com")
#性别
driver.find_element(By.ID,"genderf").click()
#输入密码验证
driver.find_element(By.ID,"verifyPassword").send_keys("1.2.3.4.5.6.")
#设置滚动条
driver.execute_script("window.scrollBy(300,3000)")
time.sleep(1)
#保存用户
driver.find_element(By.ID, "submit").click()
driver.save_screenshot("User.png")
#查看用户是否创建成功
time.sleep(1)
driver.find_element(By.LINK_TEXT, "用户").click()
driver.save_screenshot("User1.png")
# 断言,怎么加
# 验证http://114.116.97.187:1080/zentao/company-browse.html
# 根据公司选择断言准确度。
# 添加用户名,在页面中就行。
time.sleep(5)
print(driver.current_url)
assert driver.current_url == "http://114.116.97.187:1080/zentao/company-browse.html"
查看一下效果
这里就是自动化填写成功啦
这里可以看到 保存成功
设置滚动条的目的是 选择保存的时候 发现保存再页面下方 页面并没有出现保存按钮 需要设置滚动条来进行下拉
总体来说 难点就是
1.下拉列表 以及下拉框的选择
2.八大定位以及断言(因公司而异)
大家多多练习