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. MySQL 优化MySQL Server
  2. Visual Studio 2015无法进行Package Restore的原因和解决方案
  3. 安装mysql因为/tmp权限不足而导致ERROR 1045 (28000): Access denied for user root@localhost (using password: NO)的解决方案
  4. Android UI线程和非UI线程
  5. 通用权限管理系统多语言开发接口 - java,php 调用接口程序,多业务子系统集成
  6. POJ 2406 Power Strings (KMP)
  7. org.apache.cxf.transport.servlet.CXFServlet cannot be cast to javax.servlet.Servlet
  8. System.AccessViolationException: 尝试读取或写入受保护的内存。这通常指示其他内存已损坏。
  9. Azure HDInsight与Hadoop周边系统集成
  10. C#格式化数值结果表
  11. error: The requested URL returned error: 401 Unauthorized while accessing
  12. 2.5 非透明PCI桥
  13. ApocalypseSomeday
  14. C语言 汉诺塔问题
  15. POJ 3320 Jessica's Reading Problem (尺取法)
  16. Java中使用自定义类封装数组,添加类方法实现数据操作
  17. linux内核中的IPIs是什么?
  18. IntelliJ IDEA使用心得
  19. Python打包-py2exe
  20. Detour的简单使用

热门文章

  1. 区块链与Git版本工具的比较
  2. Unity游戏开发常用的一些函数用法
  3. 利用SIFT进行特征匹配
  4. P1220 关路灯 (区间dp)
  5. 代码basic讲解
  6. ACM-ICPC 2018 焦作赛区网络预赛- L:Poor God Water(BM模板/矩阵快速幂)
  7. 逍遥大佬分享mysql知识
  8. 【BZOJ3672】【UOJ#6】【NOI2014】随机数生成器
  9. webpack执行命令参数
  10. MySQL Processlist--常见线程状态