[英]Checking visibility of an element in a specific div, Selenium Python
我有3个div
s的同一类内的其他div
■当有时类pak
是可见的,有时不是。
我想检查 class 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
搜索 class pak
的解决方案?
你可以这样做:
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])))
你可以试试这个代码,特别是这个css 选择器:
visibilty = browser.find_element_by_css_selector("div.ra22>div:first-child").is_displayed()
print(visibilty)
然后你就可以具备的条件按照公开程度变量的状态。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.