setup_method初始化打开浏览器,输入账号完成登录,teardown_method关闭浏览器。
import os.path
import time
import pytest
from selenium import webdriver
from selenium.webdriver.common.by import By
class Test_Django_login():
# 登录初始化
def setup_method(self):
self.url = "http://testplt.share.atstudy.com/admin/login/?next=/admin/#"
# 不自动关闭浏览器
self.options = webdriver.ChromeOptions()
self.options.add_experimental_option('detach', True)
self.driver = webdriver.Chrome(options=self.options)
# 最大化浏览器窗口,并等待几秒以确认最大化操作已完成
self.driver.maximize_window()
time.sleep(3)
self.driver.get(self.url)
@pytest.mark.parametrize('uname,pwd', [("atstudy", "51testing"), ("atstudy1", "51testing")])
def test_login(self, uname, pwd):
self.driver.find_element(By.NAME, 'username').send_keys(uname)
self.driver.find_element(By.NAME, 'password').send_keys(pwd)
# time.sleep(1)
self.driver.find_element(By.XPATH, '//*[@id="login-form"]/div[3]/input').click()
# time.sleep(5)
try:
result = self.driver.find_element(By.XPATH, '//*[@id="content-main"]/div[1]/table/caption/a').text
print(result)
# 断言
assert result == "测试平台"
except Exception as e:
result = self.driver.find_element(By.XPATH, '//*[@id="content"]/p').text
print(result)
assert "请输入" in result
def teardown_method(self):
# 关闭浏览器
self.driver.close()
if __name__ == '__main__':
file_path = os.path.abspath(__file__)
pytest.main(["-vs", file_path])