• Selenium+Python基础


    * 前端工具介绍:

    1.  Firebug 现已加入 Firefox 开发者工具中 。http://mozilla.com.cn/thread-378679-1-1.html

    2.   老版本的Firefox下载地址:http://ftp.mozilla.org/pub/firefox/releases/

    * 使用IDLE编写Python:

     1.  快捷键:

        Tab键:自动匹配相应的关键字。

        Alt+P:回退到上次编辑的Python代码。

        Alt_N:和Alt+P相反。

        F5:运行代码

    2. 运行Python报错:

        错误消息:selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable needs to be in PATH.

        原因:浏览器驱动没有装。

        解决办法:下载相关浏览器驱动,然后安装。

        Firefox下载地址:http://blog.csdn.net/huilan_same/article/details/52885039

        Chrome下载地址:http://chromedriver.storage.googleapis.com/index.html

     * Python基础:

    1. print 打印 

    1 print("hello %s,Nice to meet you!")#打印字符串
    2 print("You are %d !");#打印数字
    3 print("You print is %r");#打印未知类型
    View Code

    2. input 输入

    1 n  = input("Enter any content:");
    2 print("Your input is %r",%n);
    View Code

    3.引号和注释

      1. Python中不区分单引号和双引号,可以嵌套使用,但不能交叉使用。

      2. 单注释用:(#)表示,多行注释用三队引号表示,同样不区分单、双引号。

    1 #单行注释
    2 
    3 """
    4 多行注释
    5 """
    6 '''
    7 多行注释
    8 '''
    View Code

     4. 分支和循环:

      1. if语句

    1 a=2
    2 b=3
    3 if a>b:
    4     print("a max!")
    5 else:
    6     print("b max!")
    View Code

      注意:Python没有像其他大多数语言一样使用“{}”表示语句体,所以它通过语句的缩进来判断语句体,缩进默认为4个空格。

      if 语句是通过“==”运算判断相等;通过“!=”判断不相等;通过“in 和not in”表示包含关系;通过布尔“True 和 False”判断 如下所示:

     1 #相等运算
     2 student="xiaoming"
     3 if student == "xiaoming":
     4     print("xiaoming,You are on duty today")
     5 else:
     6     print("please call xiaoming to duty")
     7 #包含运算
     8 hi="hello world"
     9 if "hello" in hi:
    10     print("Contain")
    11 else:
    12     print("Not Contain")
    13 #布尔判断
    14 a=True
    15 if a:
    16     print("a is True")
    17 else:
    18     print(a is not True)
    View Code

      2. for语句

    1 #遍历一个字符串
    2 for i in "hello world"
    3     print(i)#输出结果会按照每个字符进行打印
    4 #遍历一个字典
    5 fruits=['banana','apple','mango']
    6 for fruit in fruits
    7     print(fruit)#分别打印出:'banana','apple','mango'
    View Code

      range()函数在for中的应用。range(start,end,[,step])

    1 #在Python2中range()是一个生成器,xrange()是一个数组
    2 #xrange()在性能上要由于range(),因为不需要一上来就开辟一块很大的内存空间。
    3 #而在Python3中,range()和Python2中的xrange是一样的,是一个数组
    4 for i in range(1,10,2):
    5     print(i)#打印出:1 3 5 7 9
    6 #range()函数默认是从0开始循环
    View Code

    5. 数组和字典

      数组用方括号([])表示,里面的每一项用逗号(,)隔开。数组里面可以任意放置数字和字符串,默认下标是从0开始的。通过append()函数可以往数组末尾追加新的项。

    1 lists=[1,"2",3,4]
    2 lists.append('s')
    3 
    4 #lists为[1,"2",3,4,'s']
    View Code

      字典用({})表示,里面的项成对出现,一个key对应一个value;key与value之间用冒号(:)隔开;不同项之间用逗号(,)隔开。keys()函数放回字典key的列表;values()函数返回字典value的列表。

    注意:Python中规定一个字典中的key必须是独一无二的。value可以相同。项在返回时并不会按照它们在字典中的存放顺序返回。如果想按照存放的顺序输出,在可以通过下面的方法:

    1 #通过zip方法合并两个List为Dictionary
    2 #遍历会按原先的顺序
    3 keys=["a","b","c","d"]
    4 values=[1,2,3,4]
    5 
    6 for keys,values in zip(keys,values)
    7     print(key,value)
    View Code

    6. 函数、类和方法

      定义函数:使用关键字def

    1 def add(a,b):
    2     print(a+b)
    View Code

      定义类:使用关键字class

     1 class A(Object):
     2     
     3     def _init_(self,a,b):
     4         self.a=int(a)
     5         self.b=int(b)
     6  
     7 
     8     def add(self):
     9         return self.a+self.b
    10 #方法定义的第一个参数self是必须的,但是在调用方法的时候不需要为这个参数传值。
    11 
    12 #使用
    13 count=A('4',5)
    14 print(count.add())
    View Code

      类中的继承

     1 class A():
     2     
     3     def add(self,a,b):
     4         return a+b
     5 
     6 class B(A):
     7 
     8     def sub(self,a,b):
     9         return a-b
    10 
    11 
    12 print(B().add(4,5))   #9
    View Code

    7. 模组(类库或者模块)

      引用模块(通过下面两种方式引用模块)

    1 import time
    2 from time import *
    3 
    4 #可以通过help(time) 命令查看time类中的方法
    View Code

      模块调用

     1 #相同目录下,模块之间的调用
     2 #pub.py
     3 def add(a,b):
     4     return a+b
     5 
     6 #count.py
     7 from pub import add
     8 
     9 print(add(4,5))
    10 
    11 #不同目录下,模块之间的调用
    12 import sys
    13 sys.path.append(",/model")
    14 from model import new_count
    15 
    16 test =new_count.B()
    17 test.add(2,5)
    View Code

    8.异常及抛出异常

     1 #Exception是所有异常的基类,但继承BaseException,可以通过它来捕获未知的异常结果
     2 try:
     3     #正常逻辑
     4 except BaseException as msg:
     5     print(msg)
     6     #异常处理逻辑
     7 else:
     8     #没出现异常的逻辑
     9 finally:
    10     #不管是否有异常,都会被执行!
    View Code

    抛出异常raise

    1 #例如抛出一个"使用为负值对象"异常,如下写法:
    2 raise NameError("msg")
    View Code

    注意:raise只能使用Python中提供的异常类。

    Python提供的异常类如下:

    BaseException 所有异常的基类
    SystemExit 解释器请求退出
    KeyboardInterrupt 用户中断执行(通常是输入^C)
    Exception 常规错误的基类
    StopIteration 迭代器没有更多的值
    GeneratorExit 生成器(generator)发生异常来通知退出
    StandardError 所有的内建标准异常的基类
    ArithmeticError 所有数值计算错误的基类
    FloatingPointError 浮点计算错误
    OverflowError 数值运算超出最大限制
    ZeroDivisionError 除(或取模)零 (所有数据类型)
    AssertionError 断言语句失败
    AttributeError 对象没有这个属性
    EOFError 没有内建输入,到达EOF 标记
    EnvironmentError 操作系统错误的基类
    IOError 输入/输出操作失败
    OSError 操作系统错误
    WindowsError 系统调用失败
    ImportError 导入模块/对象失败
    LookupError 无效数据查询的基类
    IndexError 序列中没有此索引(index)
    KeyError 映射中没有这个键
    MemoryError 内存溢出错误(对于Python 解释器不是致命的)
    NameError 未声明/初始化对象 (没有属性)
    UnboundLocalError 访问未初始化的本地变量
    ReferenceError 弱引用(Weak reference)试图访问已经垃圾回收了的对象
    RuntimeError 一般的运行时错误
    NotImplementedError 尚未实现的方法
    SyntaxError Python 语法错误
    IndentationError 缩进错误
    TabError Tab 和空格混用
    SystemError 一般的解释器系统错误
    TypeError 对类型无效的操作
    ValueError 传入无效的参数
    UnicodeError Unicode 相关的错误
    UnicodeDecodeError Unicode 解码时的错误
    UnicodeEncodeError Unicode 编码时错误
    UnicodeTranslateError Unicode 转换时错误
    Warning 警告的基类
    DeprecationWarning 关于被弃用的特征的警告
    FutureWarning 关于构造将来语义会有改变的警告
    OverflowWarning 旧的关于自动提升为长整型(long)的警告
    PendingDeprecationWarning 关于特性将会被废弃的警告
    RuntimeWarning 可疑的运行时行为(runtime behavior)的警告
    SyntaxWarning 可疑的语法的警告
    UserWarning 用户代码生成的警告
  • 相关阅读:
    Linux Shell脚本编程实用技巧
    Transmission在Pandorabox(Openwrt)下的交叉编译
    Pandorabox下关于vsftpd匿名访问的设置
    PandoraBox下部署阿里云(aliyun)DDNS动态域名更新(shell脚本)
    win7系统封装小记
    CF R#295 (DIV.2) E. Pluses everywhere
    CF R#295 (DIV.2) D. Cubes
    CF R#295 (DIV.2) C. DNA Alignment
    winform在线操作office--dsoframerocx第三方控件
    Dapper操作
  • 原文地址:https://www.cnblogs.com/taidou/p/8337670.html
Copyright © 2020-2023  润新知