Проверка видимости элемента в конкретном div, Selenium Python - PullRequest
0 голосов
/ 02 июля 2018

У меня есть 3 div с тем же классом и внутри других div, когда иногда класс 'pak' виден, а иногда нет. Я хочу проверить, виден ли класс '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, есть какие-либо решения о том, как я могу искать класс 'pak' только в первом div? спасибо

Ответы [ 2 ]

0 голосов
/ 02 июля 2018

Вы можете попробовать этот код особенно этот css селектор :

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

Тогда вы можете иметь условий в соответствии с состоянием переменной видимости.

0 голосов
/ 02 июля 2018

Вы можете сделать так:

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])))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...