проверка наличия xpath на определенной странице - PullRequest
1 голос
/ 15 апреля 2020

У меня есть список всех людей (я в данном случае), за которыми я следую, я пытаюсь go просмотреть страницу каждого и посмотреть, есть ли у них ссылка в их БИО, если они хотят, я хочу, чтобы их учетная запись была добавлена в новый список. в противном случае я не хочу ничего делать с указанным пользователем.

Используя xpath, я определил, что пользователи, у которых нет ссылки, имеют этот xpath / html / body / div [1] / section / main / div / header / section / div [2] / a

и пользователи, у которых есть ссылка, имеют этот xpath / html / body / div [1] / section / main / div / header / section / div [2] / a [1]

Если Я запускаю driver.find_element_by_xpath("/html/body/div[1]/section/main/div/header/section/div[2]/a[1]"), и у пользователя нет ссылки. Я должен получить сообщение об ошибке, так как мы не можем найти xpath.

Как мне go проверить, какой из двух путей xpath присутствует?

Ответы [ 2 ]

0 голосов
/ 15 апреля 2020

Попробуйте ниже:

from selenium.common.exceptions import NoSuchElementException

try:
    elem = wait.until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[1]/section/main/div/header/section/div[2]/a[1]")))
    elem.click()
except NoSuchElementException:  
    print("Loading took too much time!")

Примечание: , пожалуйста, добавьте ниже импорта в ваше решение

from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
0 голосов
/ 15 апреля 2020

У вас может быть код:

Try:
    driver.find_element_by_xpath('/html/body/div[1]/section/main/div/header/section/div[2]/a[1]')
    #The user has a link in their bio
Except:
    #An error has been thrown and the user doesn't have a link in their bio

В настоящее время я создаю бота для Instagram и нашел, что это работает и будет полезно.

Кроме того, вы можете попробовать:

if len(driver.find_elements_by_xpath('/html/body/div[1]/section/main/div/header/section/div[2]/a[1]')) == 0:
    #There is no link in bio
else:
    #There is a link in the bio

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