Selenium WebDriver Подождите, пока не щелкнет

#python-3.x #selenium #webdriver

#python-3.x #селен #webdriver

Вопрос:

У меня проблема с кодом.

Мне нужно подождать 3 секунды, а затем нажать кнопку «Следовать».

Этот код нажимает кнопку «Следовать» сразу после загрузки веб-сайта.

 for follow in accounts_scrapped:
    driver.get(follow)

    try:
        follow_button = driver.find_element_by_xpath("//span[text() = 'Follow']").click()
        print("found follow button")
        follow_button.click()
        print("followed")

    except:
        print("already followed this account. Going to next one")
        continue
 

Комментарии:

1. использовать time.sleep(3) ?

2. ничего не изменилось.

3. вы нажимаете на кнопку дважды? follow_button = driver.find_element_by_xpath("//span[text() = 'Follow']").click() имеет .click() в конце

4. и тогда вы закончили follow_button.click()

5. упс, я поставил это по ошибке. Я хочу щелкнуть по нему один раз, но не сразу.

Ответ №1:

Отладьте свой код следующим образом, это может помочь понять, в чем проблема

 for follow in accounts_scrapped:
    driver.get(follow)
    try:
        follow_button = driver.find_element_by_xpath("//span[text() = 'Follow']")
        time.sleep(3)
        print('0 seconds letf')
        follow_button.click()
        print("followed")
    except Exception as e :
        print(e)
        print("already followed this account. Going to next one")
        continue
 

print(e) выведет сообщение об ошибке

Комментарии:

1. вы говорите, что он не ждет 3 секунды? может быть, где-то еще в вашем коде вы нажали на это?

2. Я всегда получаю сообщение «уже подписан на эту учетную запись. Переход к следующему»

3. это означает try , что в блоке произошла ошибка, поэтому он переместился в except блок

4. для чего распечатывается print(e) ?

5. time.sleep(3), как я понимаю, ожидает 3 секунды, пока не появится следующая страница. Но в этом случае он сразу же нажимает кнопку «Следовать» снова, когда появляется каждая страница веб-сайта.