重试硒点击
Retry Selenium Click
driver.find_element(By.XPATH, "//input[@name = 'SelectAll' and @value='Move All >>>']").click()
driver.find_element(By.NAME, "Submit1").click()
对于背景,这是转到网站的脚本的一部分,完成一些 actions/prompts,然后提取 CSV 文件。上面的代码大部分时间都有效,但有时会出现
的错误
UnexpectedAlertPresentException: unexpected alert open: {Alert text : No contracts have been selected.}
(Session info: headless chrome=97.0.4692.99)
这是来自您必须将列表项从一个对话框移到另一个对话框的页面。当没有任何东西被拉过来时,您会收到此错误。另外请注意,我在此代码之前确实有一个 implicitly_wait(100)。
我试图通过一个循环将上面的代码 运行 保存到 repeating/retrying 代码,直到成功。
如果我清楚地了解那里的内容:
您想继续执行您提到的 2 次单击操作,直到没有警报出现。
IE。如果出现警报 - 关闭警报并再次执行点击。
如果没有出现警报 - 不再需要单击这 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
driver.find_element(By.XPATH, "//input[@name = 'SelectAll' and @value='Move All >>>']").click()
driver.find_element(By.NAME, "Submit1").click()
对于背景,这是转到网站的脚本的一部分,完成一些 actions/prompts,然后提取 CSV 文件。上面的代码大部分时间都有效,但有时会出现
的错误UnexpectedAlertPresentException: unexpected alert open: {Alert text : No contracts have been selected.}
(Session info: headless chrome=97.0.4692.99)
这是来自您必须将列表项从一个对话框移到另一个对话框的页面。当没有任何东西被拉过来时,您会收到此错误。另外请注意,我在此代码之前确实有一个 implicitly_wait(100)。
我试图通过一个循环将上面的代码 运行 保存到 repeating/retrying 代码,直到成功。
如果我清楚地了解那里的内容:
您想继续执行您提到的 2 次单击操作,直到没有警报出现。
IE。如果出现警报 - 关闭警报并再次执行点击。
如果没有出现警报 - 不再需要单击这 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