检查特定div中元素的可见性,Selenium Python

时间:2018-07-02 09:39:25

标签: python selenium selenium-webdriver

当有时可见“ pak”类,有时不可见时,我有3个div具有相同的类,而在其他div内。 我想检查类'pak'在第一个div上是否可见,当有其他元素包含完全相同的类时,我是否有办法检查特定元素上是否存在类?

<div class='ra22'>
    <div class='poko'></div>
</div>
<div class='ra22'>
    <div class='poko pak'></div>
</div>
<div class='ra22'>
    <div class='poko pak'></div>
</div>

这就是我试图做的事情。

try:
    WebDriverWait(browser, 3).until(expected_conditions.visibility_of_element_located((By.CSS_SELECTOR, '.ra22 .pak)))
except:
    print 'class ".pak" not visible'

当然还有WebDriver在第二个div上找到该类,关于如何仅在第一个div中搜索类“ pak”的任何解决方案?谢谢

2 个答案:

答案 0 :(得分:0)

您可以这样做:

elements = driver.find_elements_by_css_selector(".ra22 .pak")
# then you can check visibility of every element fron the list

如果要检查元素的当前状态,请执行以下操作:

if elements[0].is_displayed(): # checks first element
  print "Element visible"
else:
  print "Element not visible"

如果要等到它可见后,请执行以下操作:

# waits 3 seconds until first element will be visible    
WebDriverWait(browser, 3).until(expected_conditions.visibility_of_element_located((elements[0])))

答案 1 :(得分:0)

您可以尝试使用此代码,尤其是此 css选择器

visibilty =  browser.find_element_by_css_selector("div.ra22>div:first-child").is_displayed()
print(visibilty)   

然后,根据可见性变量的状态,您可以具有条件

相关问题