Селен: Как подождать и нажать? - PullRequest
1 голос
/ 18 марта 2020

Я использую селен для автоматизации, и я хочу нажать на каждый из элементов <ul>, а затем подождать, прежде чем снова щелкнуть в элементе. Это мой код, но, похоже, он не является решением:

def navBar():
 driver=setup()
 navBar_List = driver.find_element_by_class_name("nav")
 listItem = navBar_List.find_elements_by_tag_name("li")
 for item in listItem :
    WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.TAG_NAME,"li")))
    item.click()

Вот код HTLM:

<ul class="nav navbar-nav"> 
                <li tabindex="0">
                        <a class="h">
                            <div class="icon-left-navbar">
                                 ...
                            </div>
                        </a>
                    </li>
                    <li tabindex="0">
                        <a class="h">
                            <div class="icon-left-navbar">
                                 ...
                            </div>
                        </a>
                    </li>
                    <li tabindex="0">
                        <a class="h">
                            <div class="icon-left-navbar">
                                 ...
                            </div>
                        </a>
                    </li>
                </ul>

Ответы [ 2 ]

0 голосов
/ 19 марта 2020

Является ли Thread.sleep (100) опцией?

0 голосов
/ 19 марта 2020

Определите li с помощью .find_elements.

Используйте xpath для их распознавания: //ul[@class='nav navbar-nav']//li.

С помощью l oop вы можете использовать приращение для ожидания каждого li. Я предполагаю, что он будет производить как показано ниже:

(xpath)[1]
(xpath)[2]
etc...

И попробуйте следующий код:

listItem = WebDriverWait(driver, 30).until(EC.visibility_of_all_elements_located((By.XPATH,"//ul[@class='nav navbar-nav']//li")))

for x in range(1, len(listItem)+1):
    WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"(//ul[@class='nav navbar-nav']//li)[" +str(x) +"]"))).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...