как я могу сделать попытку и утверждение кроме с этой ошибкой селена - PullRequest
0 голосов
/ 06 июня 2019

Я не уверен, как взять это исключение selenium / webdriver и создать оператор try / exception / else со следующей строкой исключения.Веб-сайт, который я иногда обрабатываю, может не содержать искомого элемента, но я хотел бы устранить это исключение и двигаться дальше.

selenium.common.exceptions.WebDriverException: Сообщение: хром недоступен

Я пробовал некоторые варианты этой строки в моем операторе "без".

def planCosts():
    driver.get("https://shop.freedommobile.ca/devices/Samsung/Galaxy_S10+?sku=887276301570&planSku=Freedom%20250MB")

    MSRP = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.cKlhCz')))
    MSRP = MSRP[0].text
    MSRP = re.findall(r'\d+', MSRP)
    MSRP = int(MSRP[0])
    print(MSRP)

    # grabbing the lowest upfront payment from string of min and max
    try: # checks to see if element exist
        upfrontPaymentRaw = wait.until(EC.presence_of_all_elements_located((By.CSS_SELECTOR, '.col-lg-6 .fTfebt')))

        upfrontPayment = upfrontPaymentRaw[0].text

    except selenium.common.exceptions.WebDriverException: #if I get an error looking for it then just make it default number above(MSRP)
        myTabCharge = MSRP

    else: #if no error run this code
        upfrontPayment = re.findall(r'\d+', upfrontPayment)
        upfrontPaymentLowest = int(upfrontPayment[0])
        upfrontPaymentHighest = int(upfrontPayment[1])

        myTabCharge = (upfrontPaymentHighest - upfrontPaymentLowest) / 24

Я надеюсь, что у меня будет возможность попробовать / исключить / еще оператор, который открывает браузер, ищет этот элемент, если онвозвращает исключение, в котором говорится, что элемент существует, а переменная, в которой я искал его сохранение, будет номером по умолчанию.Затем продолжите выполнение оставшейся части кода.

1 Ответ

1 голос
/ 06 июня 2019

Вам понадобится этот тип исключения в вашем пространстве имен, чтобы перехватить его, поэтому добавьте в свой импорт:

from selenium.common.exceptions import WebDriverException

А затем попробуйте изменить оператор кроме на:

except WebDriverException as e:
    if e.msg.strip().endswith("chrome not reachable"):
        myTabCharge = MSRP
    else:
        raise

Таким образом, вы ловите только определенные исключения, которые хотите обойти, и вызываете что-нибудь еще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...