If else语句,如果它成功继续,else等待并重试

2024-10-02 12:29:19 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我一直在尝试使用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')]")))

在我开始说这个问题之前。我要做的硒元素基本上是让硒元素自动写入到图中的穹窿中:

Pic1

这并不复杂。但是,每当我按“Skapa Konto”时,它就会加载并等待出现一个新页面,即:

Pic2

但问题是,有时它会出错,并给出一个图像,即:

Pic3

基本上,我需要做的是按Dismise这个错误,再按一下“SKAPA KONTO”,随机延迟点击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">

那么,我怎样才能使它重试,直到它给我成功,并继续代码?你知道吗


Tags: to元素by错误buttonelementbexpath
1条回答
网友
1楼 · 发布于 2024-10-02 12:29:19

在文本为的元素上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()

相关问题 更多 >

    热门问题