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

      

原文地址:https://www.cnblogs.com/yhms/p/11627006.html