zoukankan      html  css  js  c++  java
  • 17、expected_conditions判断页面元素

    经常有小伙伴问,如何判断一个元素是否存在,如何判断 alert 弹窗出来了,如 何判断动态的元素等等一系列的判断,在 selenium 的 expected_conditions 模 块收集了一系列的场景判断方法,这些方法是逢面试必考的!!! expected_conditions 一般也简称 EC

    https://blog.csdn.net/zyooooxie/article/details/84561783

    expected_condtions提供了16种判断页面元素的方法:

    1.title_is:判断当前页面的title是否完全等于预期字符串,返回布尔值

    2.title_contains:判断当前页面的title是否包含预期字符串,返回布尔值

    3.presence_of_element_located:判断某个元素是否被加到dom树下,不代表该元素一定可见

    4.visibility_of_element_located:判断某个元素是否可见,可见代表元素非隐藏,并且元素的宽和高都不为0

    5.visibility_of:跟上面的方法是一样的,只是上面需要传入locator,这个方法直接传定位到的element就好

    6.presence_of_all_elements_located:判断是否至少一个元素存在于dom树中,举个例子,如果页面上有n个元素的class都是'coumn-md-3',name只要有一个元素存在,这个方法就返回True

    7.text_to_be_present_in_element:判断某个元素中的text文本是否包含预期字符串

    8.text_to_be_present_in_element_value:判断某个元素中的value属性值是否包含了预期字符串

    9.frame_to_be_availabe_and_switch_to_it:判断该frame是否可以switch进去,如果可以,则返回True并且switch进去,否则返回False

    10.invisibility_of_element_located:判断某个元素是否不存在于dom树或不可见

    11.element_to_be_clickable:判断某个元素是见并且是enable(有效)的,这样的话才叫clickable

    12.staleness_of:等某个元素从dom树下移除,返回True或False

    13.element_to_be_selected:判断某个元素是否被选中,一般用于select下拉表

    14.element_selection_state_to_be:判断某个元素的选中状态是否符合预期

    15.element_located_selection_state_to_be:跟上面的方法一样,只是上面的方法传入定位到的element,这个方法传入locator

    16.alert_is_present:判断页面上是会否存在alert

     --------------------------------------------------------------------------------------------------------------------------------------------------------------

    1、'''判断title是否是一致,返回布尔值'''
    WebDriverWait(driver,10,0.1).until(EC.title_is("title_text"))

    2、'''判断title是否与包含预期值,返回布尔值'''
    WebDriverWait(driver,10,0.1).until(EC.title_contains("title_text"))

    3、'''判断某个元素是否被加到了dom树里,并不代表该元素一定可见,如果定位到就返回元素'''
    WebDriverWait(driver,10,0.1).until(EC.presence_of_element_located((locator)))

    4、'''判断某个元素是否被添加到了dom里并且可见,可见代表元素可显示且宽和高都大于0''',如果定位到就返回元素
    WebDriverWait(driver,10,0.1).until(EC.visibility_of_element_located((locator)))

    5、'''判断元素是否可见,如果可见就返回这个元素'''
    WebDriverWait(driver,10,0.1).until(EC.visibility_of(driver.find_element(locator)))

    6、'''判断是否至少有1个元素存在于dom树中,如果定位到就返回列表'''
    WebDriverWait(driver,10,0.1).until(EC.presence_of_all_elements_located((locator)))

    7、'''判断是否至少有一个元素在页面中可见,如果定位到就返回列表'''
    WebDriverWait(driver,10,0.1).until(EC.visibility_of_any_elements_located((locator)))

    8、'''判断指定的元素中是否包含了预期的字符串,返回布尔值'''
    WebDriverWait(driver,10,0.1).until(EC.text_to_be_present_in_element((locator),'预期的text'))

    9、'''判断指定元素的value属性值中是否包含了预期的字符串,返回布尔值(注意:只是value属性)'''
    WebDriverWait(driver,10,0.1).until(EC.text_to_be_present_in_element_value((locator),'预期的text'))

    10、'''判断该frame是否可以switch进去,如果可以的话,返回True并且switch进去,否则返回False'''
    WebDriverWait(driver,10,0.1).until(EC.frame_to_be_available_and_switch_to_it(locator))

    11、'''判断某个元素在是否存在于dom或不可见,如果可见返回False,不可见返回这个元素'''
    WebDriverWait(driver,10,0.1).until(EC.invisibility_of_element_located((locator)))

    12、'''判断某个元素是否可见并且是可点击的,如果是的就返回这个元素,否则返回False'''
    WebDriverWait(driver,10,0.1).until(EC.element_to_be_clickable((locator)))

    13、'''等待某个元素从dom树中移除'''
    WebDriverWait(driver,10,0.1).until(EC.staleness_of(driver.find_element(locator)))

    14、'''判断某个元素是否被选中了,一般用在下拉列表'''
    WebDriverWait(driver,10,0.1).until(EC.element_to_be_selected(driver.find_element(locator)))

    15、'''判断某个元素的选中状态是否符合预期'''
    WebDriverWait(driver,10,0.1).until(EC.element_selection_state_to_be(driver.find_element(locator),True))

    16、'''判断某个元素的选中状态是否符合预期'''
    WebDriverWait(driver,10,0.1).until(EC.element_located_selection_state_to_be((locator),True))

    17、'''判断页面上是否存在alert,如果有就切换到alert并返回alert的内容'''
    accept = WebDriverWait(driver,10,0.1).until(EC.alert_is_present())

    1、判断title==:title_is 

    2、判断title包含:title_contains

     3、判断文本(text_to_be_present_in_element)

          在做结果判断的时候,经常想判断某个元素中是否存在指定的文本,如登录后判 断页面中是账号是否是该用户的用户名。

          在 EC 模块有个方 法是可以专门用来判断元素中存在指定文本的: text_to_be_present_in_element。 另外一个差不多的方法判断元素的value属性值:

          text_to_be_present_in_element_value        

         3.1 判断博客主页上的“新随笔”元素是否存在文本“新随笔”

        

        3.2、locator 参数是定位的方式 ,text 参数是期望的值

        

     4、 判断value属性值(text_to_be_present_in_element_value)

       4.1判断谷歌搜索按钮的value值

         

        

       5、判断元素是否可见(visibility_of_element_located)

        

     6、判断弹出框存在(alert_is_present)

           系统弹窗这个是很常见的场景,有时候它不弹出来去操作的话,会抛异常。那么 又不知道它啥时候会出来,那么就需要去判断弹窗是否弹出了

          如果正常获取到弹出窗的 text 内容就返回 alert 这个 对象(注意这里不是返回 Ture),没有获取到就返回 False

          

  • 相关阅读:
    JQ选择器
    设计模式
    招银网络面试
    斗鱼面经
    招银科技面经
    用户访问网站基本流程
    shell的条件判断
    crontab -e 和/etc/crontab的区别
    秘钥对登录配置
    CentOS6 x86_64最小化安装优化脚本
  • 原文地址:https://www.cnblogs.com/yhms/p/11627006.html
Copyright © 2011-2022 走看看