selenium+python自动化用例登陆界面模板

一、基本逻辑

1.自动填写用户名和密码登录成功后跳转到相应页面

2.验证相应页面的url与给定的url是否一致,如果一致则测试通过,如果不一致则不通过

 

二、以jenkins登陆界面为例,代码如下

 1 from selenium import webdriver
 2 import unittest
 3 from selenium.webdriver.support.wait import WebDriverWait
 4 
 5 class TestLogin(unittest.TestCase):
 6     # 指定浏览器
 7     def setUp(self):
 8         self.driver = webdriver.Firefox(executable_path="F:\Program Files (x86)\Mozilla Firefox\geckodriver.exe") 
 9     # 打开url
10         self.driver.get("http://192.168.1.151:8080/login?from=%2F")
11 
12     # 登录操作
13     def test_login(self):
14         username = "test001"
15         password = "pass001"
16 
17         # 执行登录操作
18         #用户名的定位
19         WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).clear()
20         WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).send_keys(username)
21         #密码的定位
22         WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_name('j_password')).clear()
23         WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_name('j_password')).send_keys(password)
24         # 点击登录
25         self.driver.find_element_by_id("yui-gen1-button").click()
26         # 登录成功断言
27         currUrl = self.driver.current_url
28         print("currUrl"+currUrl)
29         if currUrl == "http://192.168.1.151:8080/":
30             print("success")
31         else:
32             print("failure")
33 
34     # 关闭浏览器
35     def tearDown(self):
36         self.driver.quit()
37 
38 
39 if __name__ == "__main__":
40     unittest.main()

 

三、用例详解

用例主要分为3块:

def setUp(self):函数setUp中,为执行用例前准备操作
def test_login(self):函数test_login中,为用例的具体操作步骤+用例执行后的断言判断操作
def tearDown(self):函数tearDown中,为用例执行完成的还原环境操作


值得一讲的为用户名的定位语句:
WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).clear() //找到用户名的值,把值清空 WebDriverWait(self.driver, 10).until(lambda x: x.find_element_by_id('j_username')).send_keys(username) //将username的值写入用户名值中


WebDriverWait:10秒钟内每隔0.5秒去页面找id=j_username属性的值,超过10秒则报错,有效的避免了页面加载延迟导致找不到对应值的bug

find_element_by_id:表示通过id属性去找(鼠标放在用户名框的位置-->右键-->属性),如下图:

 

四、执行结果

由于此处设置的用户名,密码无效,故返回失败,如下图:(在执行过程中可以看到在火狐中有打开浏览器的一系列操作)

 

五、用例调试

可以通过在pycharm中进入Python Console中一句一句的执行用例语句,进行用例调试并查看用例每一步操作现象

posted @ 2018-06-06 10:07  子渝渝渝  阅读(719)  评论(0编辑  收藏  举报