【问题标题】:python selenium driver.quit() won't terminate the program midwaypython selenium driver.quit() 不会中途终止程序
【发布时间】:2022-01-24 23:10:55
【问题描述】:

以下代码部分假设在出现异常时终止(停止)程序,driver.quit()。但是,程序继续运行。我在这里错过了什么?

try:
    driver.refresh()
    wait.until(ec.visibility_of_element_located(
        (By.XPATH, "//p[text()='Move']")))
    print("Waiting for Move")
    time.sleep (1)
except:
    print("All Move Completed")
    driver.quit()

【问题讨论】:

  • 在 try and except 中再次包装 driver.quit(),看看你得到了什么异常。
  • 您的代码是否到达此except 并且您看到打印消息了吗?
  • 虽然 anthino12 是相关的,但您能否分享您拥有的整个代码?还是只是一个 try and except 块?
  • 是的,我看到打印消息“All Move Completed”,然后它关闭了 chrome 浏览器,但代码继续运行。
  • @JackLuo 请不要更改您已收到经过充分研究的答案的问题。一旦您收到规范答案,更改问题可能会使所有现有答案无效,并且可能对未来的读者没有用处。如果您的要求发生了变化,请随时提出新问题。 StackOverflow 贡献者将很乐意为您提供帮助。目前我已将问题恢复到初始状态。

标签: python selenium selenium-webdriver


【解决方案1】:

您不应该在driver.close() 之后连续调用driver.quit()

完全删除driver.close()。只需保留driver.quit() 即可。

您的有效代码块将是:

while True:
    try:
        driver.refresh()
        wait.until(ec.visibility_of_element_located((By.XPATH, "//p[text()='Move']")))
        print("Waiting for Move")
        continue
    except TimeoutException:
        break
print("All Move Completed")
driver.quit()

【讨论】:

  • 对不起,我的意思是说明我都试过了。简单地让 driver.quit() 也不起作用。程序继续运行。
  • 我想知道我是否应该“打破”循环?
  • @JackLuo 检查更新的答案并让我知道状态。
  • SyntaxError: 'break' outside loop
  • 查看更新的答案并让我知道状态。
猜你喜欢
  • 2020-10-30
  • 1970-01-01
  • 2017-12-15
  • 2017-04-06
  • 2014-10-25
  • 2022-11-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多