每天努力一点点,坚持下去 ------ 博客首页

UI自动化封装:判断元素存在

判断一个元素是否存在,搜索了半天没有找到,原来这个方法在selenium里面是没有的,那就需要自己写了

思路:写一个函数进行判断,如果找到返回Ture,没找到就返回False

def is_element_exist(css):
    s = driver.find_elements_by_css_selector(css_selector=css)
    if len(s) == 0:
        print "元素未找到:%s"%css
        return False
    elif len(s) == 1:
        return True
    else:
        print "找到%s个元素:%s"%(len(s),css)
        return False

实例:

from selenium import webdriver

driver = webdriver.Firefox()
driver.implicitly_wait(10)
driver.get("http://www.baidu.com")
def is_element_exist(css):
    s = driver.find_elements_by_css_selector(css_selector=css)
    if len(s) == 0:
        print "元素未找到:%s"%css
        return False
    elif len(s) == 1:
        return True
    else:
        print "找到%s个元素:%s"%(len(s),css)
        return False

# 判断页面上有无id为kw的元素
if is_element_exist("#kw"):
    driver.find_element_by_id("kw").send_keys("yoyoketang")
# 判断页面有无标签为input元素
if is_element_exist("input"):
    driver.find_element_by_tag_name("input").send_keys("yoyoketang")
# 判断页面有无id为xxx的元素
if is_element_exist("xxx"):
    driver.find_element_by_id("xxx").send_keys("yoyoketang")

def isElementExist(css):
    try:
        driver.find_element_by_css_selector(css)
        return True
    except:
        return False

print isElementExist("#xxx")

 方法二:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get('')
result = driver.find_element_by_id().text  #转换成文本
assert '百度一下'==result,f'返回值文本与实际不一致,返回值为:{result}'  

 

posted @ 2022-05-11 21:29  他还在坚持嘛  阅读(474)  评论(0)    收藏  举报