检查已经使用Selenium检索的元素是否具有特定的类

时间:2019-05-11 05:02:11

标签: python selenium selenium-webdriver webdriver try-catch

我用硒得到元素:

element = section.find_element_by_tag_name('header')

如果header元素被打开(例如手风琴),则可以具有open类。

如果该元素具有类open,则我什么也不做(因为已经打开并且我不想关闭它),但是如果没有打开,我想单击它:

 element.click()

我不知道如何检查检索到的元素(header)是否具有“ open”类。

2 个答案:

答案 0 :(得分:1)

如果我正确理解了这个问题,则要检查是否等于open的类不执行任何操作,否则请单击header元素。

element = section.find_element_by_tag_name('header')
if 'open' not in element.get_attribute('class'):
    element.click()

答案 1 :(得分:1)

要调用click()或不执行任何操作,具体取决于class属性 open 的存在,您必须将逻辑包装在try-catch{}块中,如下所示:

try:
    section.find_element_by_xpath("//header[not(@class='open')]").click()
except NoSuchElementException:
    pass