7. 判断元素是否存在

乙醇 创建于 2 年多 之前

最后更新时间 2018-11-26

is_element_present

判断元素是否存在。所有的容器类(BasePage, Container和Logical Container)都有is_element_present方法,如果对应名称的元素在页面上存在,该方法返回true。

from selenium.webdriver.common.by import By
from webium import BasePage, Find

class PresencePage(BasePage):
    class_info = Find(by=By.CSS_SELECTOR, value='a[href*="/newclass"]')
    faq = Find(by=By.CSS_SELECTOR, value='a[href*="/faq"]')

    def __init__(self):
        super(PresencePage, self).__init__(url='http://itest.info')


if __name__ == '__main__':
    page = PresencePage()
    page.open()
    print('This should be True: ' + str(page.is_element_present('class_info')))
    print('This should be False: ' + str(page.is_element_present('no_such_link')))

注意:如果是通过Finds去定位的一组元素,我们也可以调用is_element_present方法来判断这组元素的存在性。如果这一组元素全部存在,返回True,如果有任意1个元素不存在,返回False。

just_in_dom

默认情况下,is_element_prasent方法只有在这个元素可见的时候返回True。如果我们需要元素存在于dom中就返回True的话,那么设置just_in_dom=True

timeout

timeout是等待is_element_prasent返回True的时间,单位是秒。

print('This should be True: ' + str(page.is_element_present('class_info', just_in_dom=True, timeout=3)))
上一篇: 6. Logical Containers下一篇: 8. 其他

我要留言

  • is_element_present,这里好像有问题,按照上述文章里面的运行,也发现报错,报错信息:TypeError: is not JSON serializable 能否对这些个的用法描述一下,举例里面都报错,实在不知道咋用?

    www 创建于 2019-10-12 16:11:26