当前位置: 首页 > news >正文

如何查看网站有没有收录网页设计师入门

如何查看网站有没有收录,网页设计师入门,微信小程序注册方式,wordpress腾讯云对象存储1. 简介 这篇文章主要是分享讲解一下,如何封装自己用到的方法和类。以便方便自己和别人的调用,这样就可以避免重复地再造轮子。 封装(Encapsulation)是面向对象的三大特征之一(另外两个是继承和多态)&#…

1. 简介

  这篇文章主要是分享讲解一下,如何封装自己用到的方法和类。以便方便自己和别人的调用,这样就可以避免重复地再造轮子。

  封装(Encapsulation)是面向对象的三大特征之一(另外两个是继承和多态),它指的是将对象的状态信息隐藏在对象内部,不允许外部程序直接访问对象内部信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。

就好比使用计算机,我们只需要使用计算机提供的键盘,就可以达到操作计算机的目的,至于在敲击键盘时计算机内部是如何工作,我们根本不需要知道。

封装机制保证了类内部数据结构的完整性,因为使用类的用户无法直接看到类中的数据结构,只能使用类允许公开的数据,很好地避免了外部对内部数据的影响,提高了程序的可维护性。总的来说,对一个类或对象实现良好的封装,可以达到以下目的:

  • 隐藏类的实现细节。

  • 让使用者只能通过事先预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问。

  • 可进行数据检查,从而有利于保证对象信息的完整性。

  • 便于修改,提高代码的可维护性。

为了实现良好的封装,需要从以下两个方面来考虑:

  1. 将对象的属性和实现细节隐藏起来,不允许外部直接访问。

  2. 把方法暴露出来,让方法来控制对这些属性进行安全的访问和操作。

因此,实际上封装有两个方面的含义:把该隐藏的隐藏起来,把该暴露的暴露出来。 

2. 二次封装Selenium中几个方法

  本文来介绍,如何把常用的几个webdriver的方法封装到自己写的一个类中去,这个封装过程叫二次封装Selenium方法。我们把打开站点,浏览器前进和后退,关闭和退出浏览器这这个方法封装到一个新写的类中去。

我们按照如下层次结构在PyCharm中新建两个包和两个.py文件:

 

      上图,baidu_search.py是我们编写测试脚本的python文件,具体测试代码写在这个文件。包test1下的basepage.py文件是这次我们介绍的二次封装selenium方法而新建的。这里提一下,python中默认规则,包名和文件名都是小写,类名称单词首字母大写,函数名称小写,多个字母下划线隔开。我们尽量遵守下这个不成文的约定。

来看看basepage.py的内容:

2.1 代码实现:

 

2.2 参考代码:

# coding=utf-8class BasePage(object):"""主要是把常用的几个Selenium方法封装到BasePage这个类,我们这里演示以下几个方法back()forward()get()quit()"""def __init__(self, driver):"""写一个构造函数,有一个参数driver:param driver:"""self.driver = driverdef back(self):"""浏览器后退按钮:param none:"""self.driver.back()def forward(self):"""浏览器前进按钮:param none:"""self.driver.forward()def open_url(self, url):"""打开url站点:param url:"""self.driver.get(url)def quit_browser(self):"""关闭并停止浏览器服务:param none:"""self.driver.quit()

上面的''''''是文档注释,一般在类的开始和函数的开始,用两个''''''括起来,简单描述下这个类或者函数的功能。

3. 调用自己封装过的方法

接下来看看,我们脚本文件中如何去调用我们自己封装过的方法。

baidu_search.py的内容如下:

3.1 代码实现:

3.2 参考代码:

# coding=utf-8
import time
from selenium import webdriver
from blog.basepage import BasePageclass BaiduSearch(object):driver = webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(10)basepage = BasePage(driver)def open_baidu(self):self.basepage.open_url("https://www.baidu.com")time.sleep(1)def test_search(self):self.driver.find_element_by_id('kw').send_keys("Selenium")time.sleep(1)self.basepage.back()self.basepage.forward()self.basepage.quit_browser()baidu = BaiduSearch()
baidu.open_baidu()
baidu.test_search()

3.3 运行结果:

运行代码后,控制台打印如下图的结果

 

      上面self.basepage的几行代码就是调用我们自己封装的方法去执行相关webdriver操作。这个只是一个简单的封装介绍,等后面,我们介绍了字符串切割,我们会再次介绍二次封装Selenium方法,例如将会把八大find_element方法封装到一个方法里去。

4. 封装一个自己的类-浏览器引擎类

  通过上边的一小节我们知道了,如何去封装几个简单的Selenium方法到我们自定义的类,所以我们趁热打铁:这次我们编写一个类,叫浏览器引擎类,通过更改一个字符串的值,利用if语句去判断和控制启动那个浏览器。这里我们暂时,支持三大浏览器

(IE,Chrome,Firefox)。这里有一个前提条件,在基础篇中,启动三大浏览器的driver文件,检查下你的Python安装路径下有没有这三个driver插件,如果没有,请回到基础篇的如何启动火狐和IE浏览器文章去看看如何做。

      我们继续在test1这个包下新建一个browser_engine.py文件,然后在另外一个包下新建一个test.py文件去测试这个浏览器引擎类是否工作正常。这个浏览器引擎类,我们一开始写简单一点,只写启动浏览器。

先看看browser_engine.py中的代码:

4.1 代码实现:

4.1.1 browser_engine.py

4.1.2 test.py

4.2 参考代码:

4.2.1 browser_engine.py

# coding=utf-8from selenium import webdriverclass BrowserEngine(object):"""定义一个浏览器引擎类,根据browser_type的值去,控制启动不同的浏览器,这里主要是IE,Firefox, Chrome"""def __init__(self, driver):self.driver = driverbrowser_type = "IE" # maybe Firefox, Chrome, IEdef get_browser(self):"""通过if语句,来控制初始化不同浏览器的启动,默认是启动Chrome:return: driver"""if self.browser_type == 'Firefox':driver = webdriver.Firefox()elif self.browser_type == 'Chrome':driver = webdriver.Chrome()elif self.browser_type == 'IE':driver = webdriver.Ie()else: driver = webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(10)return driver

4.2.2 test.py

再看看test.py代码,进行测试,更改browser_engine.py中browser_type的值,去测试三大浏览器是否启动正常。

# coding=utf-8
from test1.browser_engine import BrowserEngineclass TestBrowserEngine(object):def open_browser(self):browserengine = BrowserEngine(self)driver = browserengine.get_browser()tbe = TestBrowserEngine()
tbe.open_browser()

4.3 运行结果:

再看看test.py代码,进行测试,更改browser_engine.py中browser_type的值,去测试三大浏览器是否启动正常。

运行代码后,控制台打印如下图的结果

 

       目前,自定义的浏览器引擎类到这里就封装好了,只支持打开不同浏览器,需要手动修改,引擎类中browser_type的值。看起来功能简单,但是我们只是需要学习这种做事的方式和思维,在下一个部分,框架设计的时候,我会再告诉大家如何去加强这个引擎类

的功能,到时候去修改配置文件中的浏览器类型,而不是修改代码中的字段。通过修改配置文件,从而去打开不同浏览器,并开始测试相关脚本。

 

http://www.yayakq.cn/news/944580/

相关文章:

  • 图片网站如何优化赣州做网站的
  • 淮安 网站建设微官网站怎么做
  • 网站的页面大小wordpress如何删主题
  • 网站制作网站维护搜索引擎营销sem
  • 龙岩网站制作教程海口h5建站模板
  • 4k高清视频素材网站一级a做爰片不卡免费网站
  • 网站建设开发图片网站上传大马后怎么做
  • flash网站用什么做网站开发计入管理费用哪个明细
  • 网站开发的缺点建设银行网站登陆不上去
  • wordpress整个网站响应速度慢如何网站全部结构
  • 大良营销网站建设公司室内设计师的网站
  • 网站 选项卡 图标软件开发公司网站设计
  • 深圳需要做网站的公司有哪些建c2c网站
  • 娱乐网站建设公司网站制作先做数据库还是前台
  • 网站推广的宣传途径更新php wordpress
  • 网站名称格式济南软件优化网站建设
  • 网站开发常见面试题互联网保险上市公司
  • 凡科建站app专业做微视频的网站
  • 门户网站产品设计方案成都网站seo分析
  • 甘肃省城乡与住房建设厅网站wordpress 手动升级
  • 免费空间送二级域名福州seo推广外包
  • 大学毕业网站设计代做网站建设捌金手指花总十六
  • seo百度网站排名研究中心关键词首页优化左右悬停代码网站
  • 雍鑫建设集团官方网站天津网络公司排名
  • 镇江个人网站建设投资公司注册条件和要求
  • 吴中区网站建设工艺品网站建设开发
  • 保定哪家做网站专业文联网站建设方案
  • 大兴建站推广做t-shirt素材网站
  • android手机网站开发长沙微信网站制作
  • 贵州微网站建设公司wordpress会员可见插件