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类中的变量和函数不是共有的就是私有的。
- public:公有属性的类变量和类函数,在类的外部、类内部以及子类中,都可以正常访问
- private:私有属性的类变量和类函数,只有在本类内部使用,类的外部以及子类都无法使用。
但是,python并没有提供public、private这些修饰符。为了实现类的封装,python采取了下面的方法:
1.默认情况下,python类中的变量和方法都是公有的,它们的名称前都没有下划线(_)
2.如果类中的变量和函数,其名称以双下划线“__”开头,则该变量或函数为私有的。
3.以单下划线“_”开头的类属性和类方法约定俗成的被视为私有属性和私有方法。
定义一个函数
你可以定义一个由自己想要功能的函数,以下是简单的规则:
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()。
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。
- 函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。
- 函数内容以冒号起始,并且缩进。
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回 None。
语法
def functionname( parameters ):
"函数_文档字符串"
function_suite
return [expression]
函数变量
一、局部变量和全局变量的定义:
局部变量:定义在函数内部的变量称为局部变量,他的作用域范围为函数内,也就是出了函数外就无效。
全局变量:定义在函数外的变量称之为全局变量,他的作用域范围为全局。
类中的变量不可以在函数中直接访问
应该加类名.变量名
封装类和继承