🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
[TOC] 在写登录脚本的时候呢,先要保证流程能跑起来,然后才是去想办法优化代码,让自己的脚本看起来更舒服,具有良好的可读性。 ## 一、登录     1.先打开浏览器     2.打开github登录页:https://github.com/login     3.查找元素之前可以先设置元素等待:implicitlywait()     4.输入用户名、密码,然后点登录 ![](https://img.kancloud.cn/c6/5f/c65f17ca98821cdeb3f9f2de6b698d89_1093x555.png) 参考代码: ``` # 打开github首页 driver.get("https://github.com/login") driver.implicitly_wait(10) # 输入账号 driver.find_element_by_id("login_field").send_keys("youruser") # 输入密码 driver.find_element_by_id("password").send_keys("yourpsw") driver.find_element_by_name("commit").click() ``` <br /> ## 二、检查结果     1.登录完成之后,需要检查是否登录成功,这里就需要有个检查点,我这边选择右上角的账户名是不是我刚才登录这个账号 ![](https://img.kancloud.cn/ba/29/ba29576706b5120596891e17e15ff37d_1087x598.png)     2.先定位到右上角设置,通过.text方法获取这个元素的文本属性     3.判断获取到的值,与期望结果是否一致     4.符合预期结果测试通过     5.不符合预期结果测试不通过 ![](https://img.kancloud.cn/56/2c/562c48657710af34f99ebf6ef45956a0_1254x481.png) <br /> ## 三、退出登录     1.测试完之后,别忘了最后退出登录     2.退出登录后,关闭浏览器 ``` # 点sign out退出登录 driver.find_element_by_css_selector(".dropdown-item.dropdown-signout").click() driver.quit() ``` <br /> ## 四、登录函数     1.虽然上面的代码能实现登录,但整个代码跟记流水账一样,没什么可读性。如果我想换个账号登录,这时候还得找到登录的账号和密码位置,比较费时。     2.我们可以把登录和退出写出两个函数,这样看起来更舒服一点。     3.把登录的账号和密码参数化 ``` # coding:utf-8 from selenium import webdriver import time def login(driver, user, password): '''登录github''' driver.maximize_window() # 打开github首页 driver.get(" https://github.com/login") driver.implicitly_wait(10) # 输入账号 driver.find_element_by_id("login_field").send_keys(user) # 输入密码 driver.find_element_by_id("password").send_keys(password) driver.find_element_by_name("commit").click() def logout(driver): '''退出github''' time.sleep(3) # 点sign out driver.find_element_by_css_selector(".dropdown-item.dropdown-signout").click() driver.quit() def check(driver): # 登录成功后,获取我的账户名称 # 点右上角设置 driver.find_element_by_css_selector('.dropdown-caret:nth-child(3)').click() # 获取账户名称 time.sleep(1) t = driver.find_element_by_css_selector('a[role="menuitem"] strong').text print("获取到我的账户名称:%s" % t) if t == "github账号": print("登录成功!") else: print("登录失败!") if __name__ == "__main__": driver = webdriver.Chrome() # 调用登录 login(driver, "github账号", "github密码") # 调用检查用户名是否正确 check(driver) print("hello test!") # 调用退出 logout(driver) ```