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")

posted on 2020-08-27 22:40  星空6  阅读(773)  评论(0编辑  收藏  举报

导航