尝试除了继续Python不工作

时间:2017-03-18 08:01:25

标签: python exception-handling try-catch continue

我有以下尝试例程:

    While true:
    print("back to beginning")  
    self.driver.get("http://mylovelywebsite.com")
        try:
            wait.until(
                EC.title_is("This is my title")
            )
        except TimeoutException as ex:
            print("HERE!")
            print(ex.message)
            self.driver.quit()
            continue

它适用于硒,只是等着看标题是否存在。但是,我相信这只是一个蟒蛇问题(硒的问题很好)

发生的问题是ex.message没有打印任何内容。但是,即使我删除它,它也不会转到.quit()函数,当它到达continue语句时,它只会返回到print(" HERE!")语句(而不是回到剧本的开头。

我想知道如何制作它,以便在出现错误时,它会回到脚本的开头并再次运行?我是否必须将continue和quit()1缩进更少?我不确定这会起作用,因为即使错误没有被捕获,它也会进入continue语句。

1 个答案:

答案 0 :(得分:1)

  1. 你的缩进已经关闭。
  2. While应为while
  3. true应为True
  4. TimeoutException没有message属性;请改用str(ex)
  5. 如果您导入TimeoutException,则无法显示。使用from selenium.common.exceptions import TimeoutException
  6. 正确格式化

    from selenium.common.exceptions import TimeoutException
    
    while True:
        print("back to beginning")  
        self.driver.get("http://mylovelywebsite.com")
        try:
            wait.until(EC.title_is("This is my title"))
        except TimeoutException as ex:
            print("HERE!")
            print(str(ex))
            self.driver.quit()
            continue
    

    那种做你所描述的样本程序

    from selenium.common.exceptions import TimeoutException
    
    timeOut = True 
    
    while True:
        print("back to beginning")  
        try:
            if timeOut: 
                raise TimeoutException("Something caused a timeout")
            else:
                break # leave the while loop because no error occurred
        except TimeoutException as ex:
            print("HERE!")
            print(str(ex))
            continue
    

    无限循环;以ctrl+c终止。