在前面先声明几个类型
locator类型: locator = (By.ID, "kw")WebElement
类型: dr.find_element_by_id(search_text_field_id)
#代码最上方,添加下列代码
from selenium.webdriver.support import expected_conditions as EC
(1)title_is
含义:
判断当前页面的title是否精确等于预期
title_is_baidu = EC.title_is(u'百度一下,你就知道')
self.assertIsTrue (title_is_baidu(currentDr))
ps:返回一个Bool真值,如果是true则测试通过,扩充:assertIsFalse 如果是False则测试通过
(2)title_contains
含义:
判断当前页面的title是否包含预期字符串
title_should_contains_baidu = EC.title_contains(u'百度')
self.assertIsTrue (title_should_contains_baidu(dr))
(3)presence_of_element_located
含义:
不关心元素是否可见,只关心元素是否存在在页面(dom树里),传入的参数类型是locator,如(By.
ID
, 'kw')
locator = (By.ID, "kw")
WebDriverWait(dr, 10).until(EC.presence_of_element_located(locator))
(4)presence_of_all_elements_located
含义:
判断是否至少有1个元素存在于dom树中
ps:如果页面上有n个元素的class都是'column-md-3',那么只要有1个元素存在,这个方法就返回True
(5)visibility_of_element_located
含义:
判断某个元素是否可见,需要找到元素,并且该元素也可见,传入locator类型
locator = (By.ID, "kw")
search_text_field_should_present = EC.visibility_of_element_located(locator)
WebDriverWait(dr, 10).until(EC.visibility_of_element_located(locator))
self.assertIsTrue (search_text_field_should_present(currentDr))
(6)invisibility_of_element_located
含义:
判断某个元素中是否不存在于dom树或不可见,传入locator类型
(7)visibility_of
含义:
判断某个元素是否可见.可见代表元素非隐藏,传入WebElement类型
search_text_field = dr.find_element_by_id(search_text_field_id)
search_text_field_should_visible = EC.visibility_of(search_text_field)
self.assertIsTrue (search_text_field_should_visible('yes'))
(8)text_to_be_present_in_element
含义:
判断某个元素中的text是否包含了预期的字符串
text_should_present = EC.text_to_be_present_in_element((By.NAME, 'tj_trhao123'), 'hao123')
self.assertIsTrue (text_should_present(currentDr))
(9)text_to_be_present_in_element_value
含义:
判断某个元素中的value属性是否包含了预期的字符串
(10)frame_to_be_available_and_switch_to_it
含义:
判断frame是否可switch进去,返回True并switch进去,否则返回False
ps:关于iframe,在另外一篇文章中有详细介绍)
ps:可传入locator元组或者直接传入定位方式:id、name、index或WebElement
(11)alert_is_present
含义:
判断是否有提示弹框
result = EC.alert_is_present()(currentDr)
(12)element_to_be_clickable
含义:
判断某个元素中是否可见并且是可点击的,传入locator类型
(13)element_to_be_selected
含义:
判断某个元素是否被选中了,一般用在下拉列表,传入WebElement对象以及状态
(14)element_located_to_be_selected
含义:
判断某个元素是否被选中了,一般用在下拉列表,传入locator类型及状态,相等返回True,否则返回False
(15)element_selection_state_to_be
含义:
判断某个元素的选中状态是否符合预期,传入WebElement对象以及状态,相等返回True,否则返回False
(16)element_located_selection_state_to_be
含义:
判断某个元素的选中状态是否符合预期,传入locator类型及状态,相等返回True,否则返回False
(17)staleness_of
含义:
等某个元素从dom树中移除,判断一个元素是否仍在DOM中,传入WebElement对象
,返回True或False,
ps:可以判断页面是否刷新了