猿问

仅在 Python Selenium 中的 for 循环末尾引发异常

我有这样的代码:


elements = driver.find_elements(By.CSS_SELECTOR, ".names.pages")


for element in elements in range(len(elements)):

    elements[element].click()

    id_page = driver.find_element(By.CSS_SELECTOR, ".id.page")

    try:

        name = driver.find_element(By.CSS_SELECTOR, ".name")

        if name == "John":

            print("ID: " + id_page + " - " + name + " is correct name")

        else:

            print("ID: " + id_page + " - " + name + "is wrong name")

    except:

        print("Can't find the person")

        continue

输出是这样的,但列表更长:


ID: 5487 - John is correct name

ID: 3553 - John is correct name

ID: 7679 - John is correct name

ID: 7677 - Sara is wrong name

ID: 3456 - John is correct name

ID: 7990 - Michael is wrong name

ID: 5654 - John is correct name

ID: 1111 - Craig is wrong name

ID: 3456 - David is wrong name

ID: 9876 - John is correct name

循环结束后是否可以检查输出列表中是否有人姓名错误,并引发异常并仅打印错误的 ID 和/或姓名。例如,如果所有姓名都正确或找不到任何人来完成并打印成功消息。


开满天机
浏览 92回答 1
1回答

牧羊人nacy

在其自己的列表中跟踪“错误名称”,然后检查该列表末尾是否包含某些内容。伪代码:errors = []for element in ...:    if name_is_wrong:        errors.append(id_page)if errors:    raise YourException("Wrong ids: %s" % ", ".join(errors))else:    print("Success")
随时随地看视频慕课网APP

相关分类

Python
我要回答