判断文本

在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判断页面中是账号是否是该用户的用户名。
在前面的登录案例中,写了一个简单的方法,但不是公用的,在 EC 模块有个方法是可以专门用来判断元素中存在指定文本的:
text_to_be_present_in_element。
另外一个差不多复方法判断元素的 value 值:
text_to_be_present_in_element_value。

源码分析

class text_to_be_present_in_element(object):
""" An expectation for checking if the given text is present in the specified element.locator, text"""
'''翻译:判断元素中是否存在指定的文本,参数:locator, text'''
def __init__(self, locator, text_):
  self.locator = locator
  self.text = text_
def __call__(self, driver):
  try:
    element_text = _find_element(driver,
    self.locator).text
    return self.text in element_text
  except StaleElementReferenceException:
    return False
1.翻译:判断元素中是否存在指定的文本,两个参数:locator, text
2.__call__里返回的是布尔值:Ture 和 False

判断文本

1.判断百度首页上,“糯米”按钮这个元素中存在文本:贴吧

2.locator 参数是定位的方法
3.text 参数是期望的值

4.失败案例,如果判断失败就会返回false

判断value

class text_to_be_present_in_element_value(object):
"""An expectation for checking if the given text is present in the element's locator, text """
def __init__(self, locator, text_):
  self.locator = locator
  self.text = text_
def __call__(self, driver):
  try:
    element_text = _find_element(driver,
    self.locator).get_attribute("value")
    if element_text:
      return self.text in element_text
    else:
      return False
  except StaleElementReferenceException:
    return False

1.这个方法跟上面的差不多,只是这个是判断的 value 的值
2.这里举个简单案例,判断百度搜索按钮的 value 值

参考代码:

# coding:utf-8
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
driver = webdriver.Firefox()
driver.get("https://www.baidu.com/")
locator = ("name", "tj_trtieba")
text = u"贴吧"
result = EC.text_to_be_present_in_element(locator, text)(driver)
print result
# 判断失败案例
locator1 = ("name", "tj_trtieba")
text1 = u"贴吧hh"
result1 = EC.text_to_be_present_in_element(locator1, text1)(driver)
print result1
# 判断value值
locator2 = ("id","su")
value = u"百度一下"
result2 = EC.text_to_be_present_in_element_value(locator2,value)(driver)
print result2

  

判断文本(text_to_be_present_in_element)的更多相关文章

  1. 机房收费系统总结之4——VB.NET 轻松解决判断文本框、组合框为空问题

    纵观机房收费系统,判断文本框.组合框为空问题无非两种情况.第一种:判断窗体中所有文本框.组合框是否为空.第二种:判断一部分文本框.组合框是否为空.下面看看是如何实现这两种情况的. 第一种:判断窗体中所 ...

  2. EditText文本中用正则匹配是否包含数字,及判断文本只能是纯汉字或纯字母

    遇到判断EditText中文本,是否为制定格式 EditText et; Button btn; @Override protected void onCreate(Bundle savedInsta ...

  3. Python:判断文本中的用户名在数据库中是否存在,存在返回1,不存在返回0

    下面是我写的python的一个小脚本,作用是:判断文本中的用户名在数据库中是否存在,存在返回1,不存在返回0.用的是MySQL数据库. 要注意的是:strip函数的使用,该函数的作用是去除字符串两端多 ...

  4. textView中判断文本长度,自定义表情长度为1,emoj表情长度为1,输入限制

      static const int MAX_LIMIT_NUMS = 100; /**< 输入个数限制 */ // self.inputNumberTipsLabel 控制器的view上一个用 ...

  5. JavaScript 中怎样判断文本框只能输出英文字母、汉字和数字,不能输入特殊字符!

    JS-只能输入中文和英文2008-11-08 10:17在js中用正则表达式对象(RegExp)判断中文 ^[\u0391-\uFFE5]+$英文 ^[A-Za-z]+$中文和英文/^[\u0391- ...

  6. jquey(判断文本框输入的网址链接是否符合规则)

    今天遇到一个问题,我要在文本框中输入一个网址链接,使其跳转.但是如何验证,我首先想到了正则表达式.对的,就是你想的那样,我对正则一知半解,但在我哥哥帮助下,最终是 实现 了效果.在此,来一发,分享一下 ...

  7. WPF TextBlock IsTextTrimmed 判断文本是否超出

    WPF TextBlock/TextBox 设置TextTrimming情况下 判断 isTextTrimmed(Text 文本是否超出 是否出现了省略号) private bool IsTextTr ...

  8. jQuery 判断文本输入框的事件

    1.实现以下需求: 输入框中输入内容,发表按钮变为蓝色背景,删除为空则变为原来的颜色 代码实现:通过判断event.target.value是否为空 2.input事件:文本输入框正在输入时生效  f ...

  9. [ASP.NET] 后台判断文本框输入内容是否为数字

    由于使用JS在前台对文本框内容进行检测后似乎会影响回传 故在后端进行对内容判断 代码示例: string abnormal_num = Abnormal_Num.Text;//獲取文本框的text值 ...

随机推荐

  1. 20169205实验一 Java开发环境的熟悉(Linux+IDEA)

    20169205实验一 Java开发环境的熟悉(Linux+IDEA) 实验内容及步骤 使用JDK编译.运行简单的Java程序 打开windows下的cmd → 输入cd Code命令进入Code目录 ...

  2. Alpha冲刺(五)

    Information: 队名:彳艮彳亍团队 组长博客:戳我进入 作业博客:班级博客本次作业的链接 Details: 组员1 柯奇豪 过去两天完成了哪些任务 基于ssm框架的前后端交互测试,结合微信小 ...

  3. 【小梅哥SOPC学习笔记】sof与NIOS II的elf固件合并jic得到文件

    sof与NIOS II的elf固件合并jic得到文件 注意,本方法已经有更加简便的方法,小梅哥提供相应的脚本文件,可以一键生成所需文件,脚本请前往芯航线FPGA技术支持群获取. 7.1 为什么需要将S ...

  4. spring源码研究之IoC容器在web容器中初始化过程

    转载自 http://ljbal.iteye.com/blog/497314 前段时间在公司做了一个项目,项目用了spring框架实现,WEB容器是Tomct 5,虽然说把项目做完了,但是一直对spr ...

  5. 解读DbContext中的三种【EagerLoad,LazyLoad,ExplicitLoading】加载模式

    一:立即加载,延迟加载,显式加载 1. 立即加载 Student Domain{ Teacher theacher} using (SchoolDBEntities db = new SchoolDB ...

  6. 【C#】事件

    前言:CLR事件模式建立在委托的基础上,委托说调用回调方法的一种类型安全的方式. 我个人觉得事件本质就是委托,所以把委托弄清楚,只要知道事件基本语法就会使用了(如果说到线程安全,我个人觉得这个应该和线 ...

  7. rabbitmqBat常用指令

    激活 RabbitMQ's Management Pluginrabbitmq-plugins.bat enable rabbitmq_management 查看已有用户及用户的角色rabbitmqc ...

  8. [Erlang15]“hello world”与<<”hello world”>>的具体区别是什么?

    参见 :http://learnyousomeerlang.com/buckets-of-sockets 为了加深理解,自译如下,若理解有误或更好的建议,请帮忙指出, :) Buckets of So ...

  9. django drf SearchFilter与OrderingFilter

    View Demo from django.shortcuts import render from rest_framework.views import APIView from rest_fra ...

  10. C#连接MySql数据库代码

    之前学JAVA的时候,老师讲数据库的时候,讲到可以用一个类来连接数据库,叫做Dao层,今天要用C#做上位机,也有一些数据要写到数据库中去,我就想,能不能也给C#写一个这样的Dao层来连接数据库,我就去 ...