Если еще заявление, если его успешно продолжить, еще подождите и попробуйте снова - PullRequest
0 голосов
/ 23 мая 2018

Итак, я пытался поиграться с функцией в Selenium, которая называется:

WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='nsg-button nsg-bg--black register-next-step-cta js-nextStepCta' and contains(.,'FORTSÄTT')]")))

Прежде чем я начну говорить о проблеме.То, что я пытаюсь сделать Selenium, - это создать Selenium, который автоматически пишет форумчану на этой картинке:

Pic1

What is 'никаких осложнений.Однако всякий раз, когда я нажимаю «Skapa Konto», он загружается и ждет, пока не появится новая страница:

Pic2

Но проблема в том, что иногдаполучает и ошибку и дает картину, которая говорит:

Pic3

В основном, что мне нужно сделать, это нажать Отклонить эту ошибку и снова нажать на «SKAPAKONTO "со случайной задержкой щелкают между 1-10 секундами и смотрят, есть ли та же самая ошибка или успешно.В основном идея заключается в том, если его успешно.Просто продолжайте делать оставшуюся часть сценария с прекрасно работает.И затем всякий раз, когда эта ошибка выскакивает.Нажмите Отклонить эту ошибку и снова нажмите «SKAPA KONTO», которая:

  WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='CREATE ACCOUNT']")))

Обновление:

Глупо с моей стороны!Поэтому я забыл добавить HTML-код ошибки:

<span class="nike-unite-h1-no-image">An error occurred.</span>
<input type="button" value="Dismiss this error">

Итак, как мне сделать так, чтобы он повторял попытки до тех пор, пока он не даст мне успех и не продолжит код?

1 Ответ

0 голосов
/ 23 мая 2018

К click() для элемента с текстом как Отключить эту ошибку , а затем click() снова для элемента с текстом как SKAPA KONTO

while True:
    try:
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//button[@class='nsg-button nsg-bg--black register-next-step-cta js-nextStepCta' and contains(.,'FORTSÄTT')]"))).click()
        break
    except NoSuchElementException:
        driver.find_element_by_xpath("//input[@value='Dismiss this error']").click()
        # replace the exact working locator strategy for this element from your end
        WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//*[contains(.,'SKAPA KONTO')]"))).click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...