重试Selenium单击


driver.find_element(By.XPATH, "//input[@name = 'SelectAll' and @value='Move All >>>']").click()
driver.find_element(By.NAME, "Submit1").click()

对于后台,这是脚本的一部分,该脚本将转到网站,完成一些操作/提示,并提取CSV文件。上面的代码大部分时间都有效,但有时会给出的错误

UnexpectedAlertPresentException: unexpected alert open: {Alert text : No contracts have been selected.}
(Session info: headless chrome=97.0.4692.99)

这是在一个页面上,您必须将列表项从一个对话框移动到另一个对话框。当没有任何内容被移交时,您会收到此错误。同样需要注意的是,在这段代码之前,我确实有一个implicity_wait(100(。

我正试图让上面的代码运行一个循环,它将不断重复/重试代码,直到成功为止。

如果我清楚地了解发生了什么:
您想继续执行您提到的2次单击操作,直到没有出现警报为止
即,如果出现警报,请关闭警报并再次单击
如果没有出现警报-不再需要单击这两个元素,请继续下一个代码
如果是这样,您可以执行以下操作:

while True:
driver.find_element(By.XPATH, "//input[@name = 'SelectAll' and @value='Move All >>>']").click()
driver.find_element(By.NAME, "Submit1").click()
try:
alert = driver.switch_to.alert
alert.accept()
except:
break

相关内容

  • 没有找到相关文章

最新更新