首先登录网址:
http://localhost:8080/jpress/admin/login
正确的用户名和密码:root/root
需求设计:1.用户名为空的设计
2.用户名密码正确成功登录的案例
代码实例:basic目录下再创建一个文件test_user_login.py
from time import sleep
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait
import pyautogui #通过定位坐标来找到元素
class TestUserLogin(object):
def __init__(self):
self.driver = webdriver.Chrome()
self.driver.get('http://localhost:8080/jpress/admin/login')
self.driver.maximize_window()
# 测试用户登录,用户名错误
def test_user_login_username_error(self):
# 用户名为空
username = '' #实际正确的是root
pwd = 'root'
expected = '信息提交错误'
# 输入用户名
self.driver.find_element_by_name('username').send_keys(username)
# 输入密码
self.driver.find_element_by_name('password').send_keys(pwd)
#勾选复选框(必须要用坐标定位)
elem=self.driver.find_element_by_xpath('//*[@id="loginform"]/div[3]/div[1]/div/label/input')
print(elem.rect) # 找到该坐标打印一下
rect = elem.rect
pyautogui.moveTo(rect['x'] + 10, rect['y'] + 130) # 10,130 就是移动像素
pyautogui.click()
# 点击登录
self.driver.find_element_by_class_name('btn').click()
# 等待提示框
WebDriverWait(self.driver, 5).until(EC.alert_is_present())
alert = self.driver.switch_to.alert
sleep(3)
# 验证(断言)
assert alert.text == expected
alert.accept()
# self.driver.quit()
# 测试用户登录成功
def test_user_login_ok(self):
# 用户名为空
username = 'root'
pwd = 'root'
expected = 'JPress'
# 输入用户名
self.driver.find_element_by_name('username').clear()#为了把上面案例输入的值清空
self.driver.find_element_by_name('username').send_keys(username)
# 输入密码
self.driver.find_element_by_name('password').clear()
self.driver.find_element_by_name('password').send_keys(pwd)
# 点击登录
self.driver.find_element_by_class_name('btn').click()
# 等待提示框
WebDriverWait(self.driver, 5).until(EC.title_is(expected))
sleep(3)
#验证 因为没有弹窗 所以用到了title断言判断
assert self.driver.title == expected
# self.driver.quit()
main函数下调用:
from testcases.basic.test_user_login import TestUserLogin
if __name__ == '__main__':
#登录 用户名为空
case02=TestUserLogin()
# 登录 用户名为空
#case02.test_user_login_username_error()
case02.test_user_login_ok()
这样就实现了管理员登录。