Selenium.common.exceptions.ElementClickInterceptedException: - PullRequest
0 голосов
/ 21 июня 2020

I l oop через несколько URL-адресов, ищущих класс, и щелкает по нему, но когда класс не доступен для кликов на некоторых страницах, l oop не работает, что является лучшим способом игнорировать текущий неправильный URL-адрес и продолжить с l oop

Ошибка

selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: 
Element <span class="icon inlblk vtop b_phone4"></span> is not clickable

код

def single_page():
titles = driver.find_elements_by_xpath("//*[@class='ads__item__ad--title']")
with open('posts.txt', 'r') as f:
    for line in f:
        driver.get(line)
        phone = driver.find_element_by_class_name("b_phone4")
        time.sleep(1)
        phone.click()
        print("phone clicked")
        time.sleep(1)
        phone_value = driver.find_element_by_xpath('//*[@id="contact_methods"]/li/div/strong')
        # time.sleep(1)
        print(phone_value.text)

Я пробовал код ниже но не сработало

if phone:
        phone.click()
        print("phone clicked")
        time.sleep(1)
        phone_value = driver.find_element_by_xpath('//*[@id="contact_methods"]/li/div/strong')
        # time.sleep(1)
        print(phone_value.text)
    else:
        f += 1
        

1 Ответ

0 голосов
/ 21 июня 2020

Добавьте try внутри вашего l oop, вы должны добавить continue внутри, за исключением следующего:

    for line in f:
       try:
        driver.get(line)
        phone = driver.find_element_by_class_name("b_phone4")
        time.sleep(1)
        phone.click()
        print("phone clicked")
        time.sleep(1)
        phone_value = driver.find_element_by_xpath('//*[@id="contact_methods"]/li/div/strong')
        # time.sleep(1)
        print(phone_value.text)
      except Exception as error:
        continue
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...