zoukankan      html  css  js  c++  java
  • python+selenium的自动化测试程序

    python

    类的定义

    Python从设计之初就已经是一门面向对象的语言

    类(Class): 用来描述具有相同的属性和方法的对象的集合。它定义了该集合中每个对象所共有的属性和方法。对象是类的实例。

    类变量:类变量在整个实例化的对象中是公用的。类变量定义在类中且在函数体之外。类变量通常不作为实例变量使用。

    方法重写:如果从父类继承的方法不能满足子类的需求,可以对其进行改写,这个过程叫方法的覆盖(override),也称为方法的重写。

    • 继承:即一个派生类(derived class)继承基类(base class)的字段和方法。继承也允许把一个派生类的对象作为一个基类对象对待。例如,有这样一个设计:一个Dog类型的对象派生自Animal类,这是模拟"是一个(is-a)"关系(例图,Dog是一个Animal)。
    • 实例化:创建一个类的实例,类的具体对象。
    • 方法:类中定义的函数。
    • 对象:通过类定义的数据结构实例。对象包括两个数据成员(类变量和实例变量)和方法。

    创建类

    使用 class 语句来创建一个新类,class 之后为类的名称并以冒号结尾:

    在Python中,类通过class关键字定义,类名以大写字母开头

    然后定义方法名

    最后给类一个实例化对象

    然后用这个对象调用类的方法

    #导入webdriver模块它是用来控制浏览器的
    from selenium import webdriver
    import time
    #导入查找元素的by类
    from selenium.webdriver.common.by import By
    from selenium.webdriver.support.select import Select
    class Login():
    def login(self):
    #实例化,且指定以Chrome浏览器打开
    driver = webdriver.Chrome('/Library/Frameworks/Python.framework/Versions/3.8/chromedriver')
    #打开724首页
    driver.get('https://wx.jk724.com')
    time.sleep(3)
    # 最大化浏览器页面
    driver.maximize_window()
    #点击限时抢购商品,跳转抢购列表,元素属性值可能有多个,从中取任何一个即可,因为每一个属性值代表一个元素的展示配置可以查看html中选中元素查看style找对应的元素值即可
    element = driver.find_element_by_class_name("icon-personal").click()
    time.sleep(3)
    #如果查找不到元素可以通过打印的方式查看具体情况
    # print driver.find_element_by_xpath("//input[@type='tel' and @class='mui-input-clear']").text
    #如果父级有多个子节点,没有办法单独根据一个属性来查找元素,那就多个属性一起查找
    element =driver.find_element_by_xpath("//input[@type='tel' and @class='mui-input-clear']").send_keys('18221669843')
    element = driver.find_element_by_class_name("getcode").click()
    element = driver.find_element_by_class_name("input-vcode").send_keys('6666')
    time.sleep(3)
    element =driver.find_element_by_xpath("//button[@type='button' and @class='submit-btn']").click()
    time.sleep(3)
    print(element)
    "创建 Employee 类的第一个对象"
    emp1 = Login()
    emp1.login()

    python类如何进行封装
    不同于其他面向对象的编程语言,python类中的变量和函数不是共有的就是私有的。

    1. public:公有属性的类变量和类函数,在类的外部、类内部以及子类中,都可以正常访问
    2. private:私有属性的类变量和类函数,只有在本类内部使用,类的外部以及子类都无法使用。

    但是,python并没有提供public、private这些修饰符。为了实现类的封装,python采取了下面的方法:

    1.默认情况下,python类中的变量和方法都是公有的,它们的名称前都没有下划线(_)

    2.如果类中的变量和函数,其名称以双下划线“__”开头,则该变量或函数为私有的。

    3.以单下划线“_”开头的类属性和类方法约定俗成的被视为私有属性和私有方法。

    定义一个函数

    你可以定义一个由自己想要功能的函数,以下是简单的规则:

    • 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
    • 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
    • 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
    • 函数内容以冒号起始,并且缩进。
    • return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。

    语法

    def functionname( parameters ):
    "函数_文档字符串"
    function_suite
    return [expression]
     
    函数变量

    一、局部变量和全局变量的定义:

     局部变量:定义在函数内部的变量称为局部变量,他的作用域范围为函数内,也就是出了函数外就无效。

    全局变量:定义在函数外的变量称之为全局变量,他的作用域范围为全局。

    类中的变量不可以在函数中直接访问

    应该加类名.变量名

    封装类和继承

  • 相关阅读:
    ggplot2颜色操作
    Legendsggplot2图例的一些操作
    linux下 ^M
    R语言中数据框的横向合并与纵向合并
    R语言处理缺失数据的高级方法
    R语言 聚类分析
    Gradle 多渠道打包的使用和错误分析
    android 应用使用第三方字体 (瘦身方案)
    月历卡片
    Intercept back button from soft keyboard(从软键盘拦截后退按钮)
  • 原文地址:https://www.cnblogs.com/T-CYP/p/13269734.html
Copyright © 2011-2022 走看看