try函数调用方式不对

写try函数的目的是因为,自动化网页测试的时候,有时候这个E函数会不存在,所以我就想用try函数来判定,当E函数的指向不存在时就跳过E函数,接着爬取下一题
先贴代码

def E(f):
    optionE = driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-left.pull-left.lianxi-left > div.topic.no-select > div > div:nth-child(2) > div > div:nth-child(5)').text.replace('\n','')
    print(optionE)
    try:
        E()
    except:
        print()
    else:
         var = 1
         while var == 1:
          x(1)
          sleep(5)
          t(1)
          A(2)
          B(3)
          C(4)
          D(5)
          E(6)
          F(7)


我的个人理解,当执行try函数时,如果try语句没有报错,那么就会执行else的语句,如果try函数报错了,那么就会执行except语句,但是当我这一段代码运行的时候总是会执行E()函数 就是输出文字。 写try函数的目的是因为,自动化网页测试的时候,有时候这个E函数会不存在,所以我就想用try函数来判定,当E函数的指向不存在时就跳过E函数,接着爬取下一题

完整代码如下:

import requests
import time
import importlib
from rsa import sign
from tkinter.messagebox import NO
from time import sleep
import scrapy
import posixpath
from selenium import webdriver
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
from selenium.webdriver.common.by import By
driver.get('https://www.zaixiankaoshi.com/online/?paperId=664640&practice=&modal=1&is_recite=&qtype=&text=%E9%A1%BA%E5%BA%8F%E7%BB%83%E4%B9%A0&sequence=0&is_collect=0')
# 打开考试宝
time.sleep(2)



driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-right.pull-right.lianxi-right > div:nth-child(2) > div.set > p:nth-child(2) > span.pull-right > div > span').click()
# 点击查看答案
def t(a):
    title = driver.find_element_by_xpath('//*[@id="body"]/div[2]/div[1]/div[2]/div[1]/div[1]/div/div[1]/div/div').text
    print(title)
# 爬取问题
#
def A(b):
    optionA = driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-left.pull-left.lianxi-left > div.topic.no-select > div > div:nth-child(2) > div > div:nth-child(1)').text.replace('\n','')
    print(optionA)
# # 爬取选择
def B(c):
    optionB = driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-left.pull-left.lianxi-left > div.topic.no-select > div > div:nth-child(2) > div > div:nth-child(2)').text.replace('\n','')
    print(optionB)
def C(d):
    optionC = driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-left.pull-left.lianxi-left > div.topic.no-select > div > div:nth-child(2) > div > div:nth-child(3)').text.replace('\n','')
    print(optionC)
def D(e):
    optionD = driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-left.pull-left.lianxi-left > div.topic.no-select > div > div:nth-child(2) > div > div:nth-child(4)').text.replace('\n','')
    print(optionD)
def E(f):
    optionE = driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-left.pull-left.lianxi-left > div.topic.no-select > div > div:nth-child(2) > div > div:nth-child(5)').text.replace('\n','')
    print(optionE)
    try:
        E()
    except:
        print()
    else:
         var = 1
         while var == 1:
          x(1)
          sleep(5)
          t(1)
          A(2)
          B(3)
          C(4)
          D(5)
          E(6)
          F(7)
def F(g):
    answer = driver.find_element_by_css_selector('#body > div.middle-container.bj-eee > div.layout-container.prative-page > div.clearfix > div.layout-left.pull-left.lianxi-left > div.answer-box > div.answer-right > div > div.left').text
    print(answer)
time.sleep(1)
def x(y):
    driver.find_element_by_xpath('//*[@id="body"]/div[2]/div[1]/div[2]/div[1]/div[1]/div/div[3]/button[2]').click()

#点击下一题

所以你遇到的问题是“但是当我这一段代码运行的时候总是会执行E()函数 就是输出文字”?

我咱记得是try后面无论成功与否最后都会调用else的代码呢?就是try成功了调用else的,如果try失败了调用Expect,完了以后依然会调用else太晚了,明天用电脑给你试试