栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

python-selenium基础实现

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

python-selenium基础实现

1.先封装base层(base_page.py);将相同的属性和行为进行封装;比如:每一个页面都需要经过元素定位、点击或者输入

2.再封装Page层(login_page.py):这是一个页面对象层,也就是把每一个页面当做一个对象,在每个对象中包含属性和行为。通过对base层的继承,使用base层定位好的属性和行为

3.最后封装TestCase层(testcase_login.py):通过unittest框架,进行用例的设计;如果登录,首先要先加载浏览器,然后方法窗口,引用login_page中方法和属性,最终能使用例运行成功

base:base_page.py

"""
每个页面相同属性以及行为;

"""

class basePage:
    def __init__(self, driver):
        self.driver = driver

    """
    相同行为: 定位元素、点击、输入
    """
    def locator(self,loc):  #定位元素
        #self.driver.find_element(By.XPATH,"")
        return self.driver.find_element(*loc)  #定位元素,find_element支持8大定位方法都支持。,函数中传递一个参数,引用的时候使用*拆包即可

    def send_key(self,loc,value): #输入
        self.locator(loc).send_keys(value)  #先定位到元素,然后对应输入值;给函数传递参数

    def click(self,loc):    #点击
        self.locator(loc).click()

    def getURL(self,url):
        self.driver.get(url)

Page:login_page.py

"""
page:页面对象层,把每个页面当作一个对象,在每个对象中包含属性和行为
通过继承base层
"""
import time
from selenium.webdriver.common.by import By
from base.base_page import basePage

class Login_page(basePage):#  通过基础base中base_page中basePage类,从而可以使用
    #属性:每个页面的元素
    login_button = (By.XPATH, "//span[text()='登录']")     #登录按钮
    username = (By.XPATH, "//input[@placeholder='请输入用户名或邮箱']")
    password = (By.XPATH, "//input[@placeholder='请输入密码']")
    login_submit = (By.XPATH, "//span[text()='立即登录']")
    url = "https://ad.xxx.com.cn/home"

    #行为(方法):登录
    def login(self, username, password):
        #加载项目地址:
        #self.driver.get("https://ad.xxx.com.cn/home")  #但是每一个页面都有自己的url;所以这个url可以放到当前页面属性中,这里直接掉调用接口;
        #self.driver.get(self.url)  #由于每个页面都有url,所以可以封装到base层
        self.getURL(self.url)
        time.sleep(3)

        #点击登录按钮
        self.click(self.login_button)
        time.sleep(1)

        #输入用户名
        self.send_key(self.username, username)   #第一个是属性名,第二个是属性值
        time.sleep(1)

        #输入密码
        self.send_key(self.password, password)
        time.sleep(1)

        #点击立即登录
        self.click(self.login_submit)
        time.sleep(2)

TestCase:testcase_login.py

import time
import unittest
from selenium import webdriver
from Page.login_page import Login_page
"""
用例的实现与执行
"""
class TestCase_login(unittest.TestCase):
    def test01_login(self):
        #登录用例
        #1. 先加载浏览器
        self.driver = webdriver.Chrome()
        time.sleep(1)
        self.driver.maximize_window()  #放大窗口
        time.sleep(1)
        Login = Login_page(self.driver)
        Login.login(username="yiqyiq", password="Yiq123456")

if __name__ == '__main__':
    unittest.main()
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/299833.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号