Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/299.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python If-else语句,如果成功,请继续,否则请等待并重试_Python_Selenium_If Statement - Fatal编程技术网

Python If-else语句,如果成功,请继续,否则请等待并重试

Python If-else语句,如果成功,请继续,否则请等待并重试,python,selenium,if-statement,Python,Selenium,If Statement,因此,我一直在尝试使用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中的函数,该函数名为:

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,它可以自动写入图中的forumlar:

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

  WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='CREATE ACCOUNT']")))
<span class="nike-unite-h1-no-image">An error occurred.</span>
<input type="button" value="Dismiss this error">

但问题是,有时它会出错,并给出一幅图,表明:

基本上,我需要做的是按下Disclose这个错误,再次按下SKAPA KONTO,在1-10秒之间随机延迟点击,看看是否有相同的错误或成功。基本上,这个想法是如果成功的话。只需继续使用works fine完成脚本的其余部分。然后每当这个错误出现时。按“消除此错误”并再次按“SKAPA KONTO”,即:

  WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='CREATE ACCOUNT']")))
<span class="nike-unite-h1-no-image">An error occurred.</span>
<input type="button" value="Dismiss this error">
更新:

我真蠢!因此,我忘记为错误添加HTML,错误是:

  WebDriverWait(browser, 20).until(EC.element_to_be_clickable((By.XPATH, "//input[@value='CREATE ACCOUNT']")))
<span class="nike-unite-h1-no-image">An error occurred.</span>
<input type="button" value="Dismiss this error">
发生错误。
那么,我如何才能使它重试,直到成功并继续代码?

在文本为的元素上单击(),消除此错误,然后再次在文本为的元素上单击()

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()

排除此错误时会发生什么情况?你是否用文本为Skapa Konto的按钮重定向回页面?Correct@DebanjanB-所有信息都与原来相同。只需再次按下Skapa Konto:)请注意,由于GDPR的原因,您可能没有存储性等信息的权限。哦!是的,我确实读过。这不应该是@Moberg的问题,但我非常感谢你这么说!GDPR对我来说仍然是一个新的学习阶段!哈哈。但是谢谢@CDNTHE2还有一个后续问题:当您使用带有文本
Skapa konto
的按钮重定向回页面时,字段是否包含数据,例如
CDNthe2nd@selenium.com
你好
世界
等是否正确保留?注
如果您没有在回复中添加@DebanjanB,如果您回答了我的问题,我不会得到通知
我认为您的代码只会运行一次迭代,而True
是不必要的。