• Selenium2+python自动化43-判断title(title_is)


    From: https://www.cnblogs.com/yoyoketang/p/6539117.html

    前言

    获取页面title的方法可以直接用driver.title获取到,然后也可以把获取到的结果用做断言。

    本篇介绍另外一种方法去判断页面title是否与期望结果一种,用到上一篇Selenium2+python自动化42-判断元素(expected_conditions)

    提到的expected_conditions模块里的title_is和title_contains两种方法

    一、源码分析

    1.首先看下源码,如下

    class title_is(object):
        """An expectation for checking the title of a page.
        title is the expected title, which must be an exact match
        returns True if the title matches, false otherwise."""

        '''翻译:检查页面的title与期望值是都完全一致,如果完全一致,返回Ture,否则返回Flase'''
        def __init__(self, title):
            self.title = title

        def __call__(self, driver):
            return self.title == driver.title

    2.注释翻译:检查页面的title与期望值是都完全一致,如果完全一致,返回True,否则返回Flase

    3.title_is()这个是一个class类型,里面有两个方法

    4.__init__是初始化内容,参数是title,必填项

    5.__call__是把实例变成一个对象,参数是driver,返回的是self.title == driver.title,布尔值

    二、判断title:title_is()

    1.首先导入expected_conditions模块

    2.由于这个模块名称比较长,所以为了后续的调用方便,重新命名为EC了(有点像数据库里面多表查询时候重命名)

    3.打开博客首页后判断title,返回结果是True或False

    三、判断title包含:title_contains

    1.这个类跟上面那个类差不多,只是这个是部分匹配(类似于xpath里面的contains语法)

    2.判断title包含'上海-悠悠'字符串

    四、参考代码

    # coding:utf-8
    from selenium import webdriver
    from selenium.webdriver.support import expected_conditions as EC
    driver = webdriver.Firefox()
    driver.get("http://www.cnblogs.com/yoyoketang")
    # 判断title完全等于
    title = EC.title_is(u'上海-悠悠 - 博客园')
    print title(driver)

    # 判断title包含
    title1 = EC.title_contains(u'上海-悠悠')
    print title1(driver)

    # 另外一种写法,交流QQ群:232607095
    r1 = EC.title_is(u'上海-悠悠 - 博客园')(driver)
    r2 = EC.title_contains(u'上海-悠悠')(driver)
    print r1
    print r2

    学习过程中有遇到疑问的,可以加selenium(python+java) QQ群交流:646645429

    另外成立了python接口自动化QQ群:226296743

     selenium+python高级教程》已出书:selenium webdriver基于Python源码案例

    (购买此书送对应PDF版本)

  • 相关阅读:
    我们在囧途之程序员转型记
    项目开发应遵循1+7还是7+1?
    自己用的一款模板解析程序(支持插件和扩展)(思路讨论和使用体验)
    设计的核心任务之一:层次的控制
    【设计 = 编码】 VS 【设计 ≠ 编码】
    从一生的角度看程序员的学习和发展
    编码质量与命名
    软件开发十年小史
    设计的核心任务之三:确保正交性
    国内外软件开发上的差距与分析
  • 原文地址:https://www.cnblogs.com/Raul2018/p/9947305.html
Copyright © 2020-2023  润新知