Selenium3+python3自动化(八)--登录案例、获取某元素的某属性的值.get_attribute("属性名")
前言
前面几篇都是讲一些基础的定位方法,没具体的案例,下面以开源系统OPMS登录为例。可参考:linux下搭建opms项目
一、登录
1.先打开浏览器
2.打开opms登录页:http://ip:8088/login
3.查找元素之前可以先设置元素等待:implicitlywait()
4.输入用户名、密码,然后点登录
参考代码:
# coding:utf-8 from selenium import webdriver driver=webdriver.Chrome() driver.get("http://47.98.186.11:8088/login") driver.implicitly_wait(10) driver.find_element_by_name("username").send_keys("libai") driver.find_element_by_xpath("//div[@class='login-wrap']/input[2]").send_keys("123456") driver.find_element_by_xpath("//button[@type='submit']").click()
二、检查结果
1.登录完成之后,需要检查是否登录成功,这里就需要有个检查点,我这边选择右上角的账号,查看是不是刚才登录的账号
2.定位到右上角链接,然后取.text方法获取这个元素的文本属性
3.判断获取的值,与期望结果是否一致
4.符合预期结果测试通过
5.不符合预期结果测试不通过
三、退出登录
1.测试完之后,别忘了最后退出登录
2.退出登录后,关闭浏览器
参考代码:
from selenium import webdriver import time name="libai" passwd="123456" host="http://47.98.106.11:8088" driver=webdriver.Chrome() # driver.maximize_window() driver.get(host+"/login") driver.implicitly_wait(10) driver.find_element_by_name("username").send_keys(name) driver.find_element_by_xpath("//div[@class='login-wrap']/input[2]").send_keys(passwd) driver.find_element_by_xpath("//button[@type='submit']").click() t=driver.find_element_by_xpath("//ul[@class='notification-menu']/li[2]/a").text if t==name: print("登录成功") else: print("登录失败") #点击账号 driver.find_element_by_xpath("//ul[@class='notification-menu']/li[2]/a").click() time.sleep(3) #点击退出 # driver.find_element_by_xpath("//li[@class='open']/ul/li[6]/a").click() driver.find_element_by_xpath("//li/ul/li/a[@href='/logout']").click() #获取href值,地址 # a=driver.find_element_by_xpath("//li[@class='open']/ul/li[6]/a").get_attribute("href") # time.sleep(2) # driver.get(a) time.sleep(2) driver.close()
四、登录函数
1.虽然上面的代码实现了登录,但整个代码跟记流水账一样,没什么可读性。
2.我们可以把登录和退出写成两个函数,这样看起来更舒服一点。
3.把登录账号和密码参数化。
# coding:utf-8 from selenium import webdriver import time def login(driver,host,name,passwd): driver.get(host+"/login") driver.find_element_by_name("username").send_keys(name) driver.find_element_by_name("password").send_keys(passwd) driver.find_element_by_xpath("//div[@class='login-wrap']/button").click() time.sleep(3) a=driver.find_element_by_xpath("//div[@class='menu-right']/ul/li[2]/a").text if a==name: return True else: return False def logout(driver): driver.find_element_by_xpath("//div[@class='menu-right']/ul/li[2]/a").click() time.sleep(2) h=driver.find_element_by_xpath("//li/ul/li[6]/a").get_attribute('href') print(type(h),h) time.sleep(2) driver.get(h) if __name__=="__main__": host="http://47.98.186.11:8088" driver=webdriver.Chrome() name='libai' passwd='123456' r=login(driver,host,name,passwd) if r: print("登录成功") logout(driver) else: print("登录失败") driver.close()
运行结果:
获取某元素的某属性的值
a=driver.find_element_by_xpath("//li[@class='open']/ul/li[6]/a").get_attribute("href")
越努力,越幸运!!!
good good study,day day up!!!