首页 > 解决方案 > 通过 if 条件检查 css 选择器的存在

问题描述

我正在编写一个代码来自动化网站的登录和测试过程。它从变量中获取登录凭据并检查登录是否成功。为此,我试图找到一个 Log Out Icon 标签并相应地打印结果。下面是我的代码:

if browser.find_element_by_css_selector('.signOut.logout-icon'):
    print "Sign In Succesful"
elif browser.find_element_by_css_selector('.msg.ux-error '):
    print "Sign In Error"
else:
    print "Other issues"

但是,上面的代码给了我以下错误:

selenium.common.exceptions.NoSuchElementException: Message: no such element: Unable to locate element: {"method":"css selector","selector":".signOut.logout-icon"}

我知道无法始终找到注销图标,这就是为什么我给出了更多其他条件的原因。为什么在没有 css 选择器的情况下它不会进入下一个条件而是给我一个错误?

标签: python-2.7selenium

解决方案


您应该使用is_dispalyed()检查元素是否存在。

试试下面的代码: -

  if browser.find_element_by_css_selector('.signOut.logout-icon').is_displayed()
        print "Sign In Succesful"
    elif browser.find_element_by_css_selector('.msg.ux-error ').is_displayed():
        print "Sign In Error"
    else:
        print "Other issues"

或尝试以下代码:

try:
    if browser.find_element_by_css_selector('.signOut.logout-icon').is_displayed():
          print "Sign In Succesful"

except NoSuchElementException::
    if browser.find_element_by_css_selector('.msg.ux-error ').is_displayed():
            print "Sign In Error"
except :
print:"other issue"

推荐阅读