Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用
来源:互联网 发布:fq软件是什么 编辑:程序博客网 时间:2024/05/21 08:59
前篇文章介绍了PyCharm的基本使用,接下来我们的脚本代码都在这个PyCharm这个编辑器里写。好处有很多,项目文件结构层次清晰,写代码的时候会自动化提示和补全。这里,我们在昨天创建的项目下,新建一个包,然后在包下面新建一个demo.py文件。抄写以下代码到你的环境里,尝试运行下,看看有没有问题。
关于Python中类和函数及方法的调用,我们写在这个demo.py文件,具体代码如下:
# coding=utf-8class ClassA(object): string1 = "这是一个字符串。" def instancefunc(self): print ('这是一个实例方法。') print (self) @classmethod def classfunc(cls): print ('这是一个类方法。') print (cls) @staticmethod def staticfun(): print ('这是一个静态方法。')test = ClassA() # 初始化一个ClasssA的对象,test是类ClassA的实例对象test.instancefunc() # 对象调用实例方法test.staticfun() # 对象调用静态方法test.classfunc() # 对象调用类方法print test.string1 # 对象调用类变量ClassA.instancefunc(test) # 类调用实例方法,需要带参数,这里的test是一个对象参数ClassA.instancefunc(ClassA) # 类调用实例方法,需要带参数,这里的ClassA是一个类参数ClassA.staticfun() # 类调用静态方法ClassA.classfunc() # 类调用类方法
先运行下代码是否会报错,然后尝试自己去理解下。主要有以下几点内容
1. 类的定义,class开头的就表示这是一个类,小括号里面的,表示这个类的父类,涉及到继承,默认object是所有类的父类。python中定义类,小括号内主要有三种:1. 具体一个父类,2. object 3. 空白
2. 函数或方法的定义, def开头就表示定义一个函数,方法包括,实例方法,类方法,静态方法,注意看类方法和静态方法定义的时候上面有一个@标记。
3. 对象调用方法和类调用方法的使用。
这篇讲的东西,确实比较难理解。如果学过java的人,可能会好理解类和对象,以及面向对象的概念。Python同时支持面向过程变成和面向对象编程,所有python中也有类和对象等概念。一般来说,概念的东西比较绕,如果你Python基础没有看到这部分,那边请回去《看笨方法学python》中关于这块的介绍。如果有看过了,还是不理解,我只能告诉你,继续学下去,你现在哪怕死记住这些概念和他们的基本使用。等到后面,框架设计部分,你会慢慢体会到这些基本概念的实际用法,你跟着写了代码后,会有助于你自己的理解和提高。
最后,来说下python中的模块,在python中,你新建一个demo.py文件,那么一个.py文件可以说是一个模块,一个模块中,可以定义多个class,模块中也可以直接定义函数。和java一样,访问不同包下的类和方法之前,需要导入相关路径下的包。例如from selenium import webdriver 这个导入语句,我们知道webdriver这个接口是在selenium的模块下。
本篇文章的学习目的,会用函数或者类来编写我们之前写过的脚本。
以下用百度搜索举例,模仿上面用类调用实例的方法来写这个脚本,可能看起来比较啰嗦,但是代码多了,你就会体会到类的作用,注意这里self指的是当前BaiduSearch这个类本身:
# coding=utf-8import timefrom selenium import webdriverclass BaiduSearch(object): driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(10) def open_baidu(self): self.driver.get("https://www.baidu.com") time.sleep(1) def test_search(self): self.driver.find_element_by_id('kw').send_keys("selenium") time.sleep(1) print self.driver.title try: assert 'selenium' in self.driver.title print ('Test pass.') except Exception as e: print ('Test fail.') self.driver.quit()baidu = BaiduSearch()baidu.open_baidu()baidu.test_search()
- Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用
- Python+Selenium中级篇之1-Python IDE工具-PyCharm的安装和简单使用
- Python+Selenium中级篇之8-Python自定义封装一个简单的Log类
- Python+Selenium中级篇之3-二次封装Selenium中几个方法
- Python+Selenium中级篇之9-把截图类方法封装到前面的BasePage.py
- Python+Selenium中级篇之0-设计自动化测试框架的前提技能介绍
- Python+Selenium中级篇之5-Python读取配置文件内容
- Python+Selenium中级篇之4-封装一个自己的类-浏览器引擎类
- Python+Selenium中级篇之7-Python中字符串切割操作
- Python+Selenium中级篇之6-Python获取系统时间和格式化时间显示
- Python+Selenium中级篇之10-Python中的继承的使用
- python 的os模块下chmod方法简单介绍
- python中模块和方法的查找
- Python+Selenium框架设计篇之2-简单介绍unittest单元测试框架
- python模块简单介绍
- selenium python 自定义函数调用
- python中简单的类定义及调用方法
- Python模块selenium中的webdriver对Chrome的调用
- eclipse+tomcat开发,改后台代码不需要重启tomcat的方法
- unit13 软件安装
- Linux下进程及其描述task_struct
- Visual Studio 统一更改代码区缩放比例的解决方案
- 对 Linux 新手非常有用的 20 个命令
- Python+Selenium中级篇之2-Python中类/函数/模块的简单介绍和方法调用
- Java后端WebSocket的Tomcat实现
- 半平面交
- Linux 内核引导选项简介
- Timer.cancel()无效。Android长按按钮一定时间执行某个操作。
- c#调用C++的dll的例程
- 几个html代码demo
- 【git使用】Permission denied (publickey). fatal: Could not read from remote respository.解决办法
- SQL 关于apply的两种形式cross apply 和 outer apply