执行“尝试...除外...”的功能

And*_*rew 0 python selenium python-3.x

我想将“尝试...除外...”放入一个函数中,以便我的代码更短,因为它被多次使用。

使这项工作:

def whiletry(x):
    while 1:
        try:
            x
            break
        except:
            time.sleep(0.25)

whiletry(driver.find_element_by_xpath('//*[@id="j_list_card"]/ul/li/h3/a').click())
Run Code Online (Sandbox Code Playgroud)

Ale*_*all 6

def whiletry(func):
    while 1:
        try:
            return func()
        except:
            time.sleep(0.25)

def click():
    driver.find_element_by_xpath('//*[@id="j_list_card"]/ul/li/h3/a').click()

whiletry(click)
Run Code Online (Sandbox Code Playgroud)

用法也可以等价地写成:

whiletry(lambda: driver.find_element_by_xpath('//*[@id="j_list_card"]/ul/li/h3/a').click())
Run Code Online (Sandbox Code Playgroud)

请注意lambda.