Как найти элемент без идентификатора selenium python

#python #selenium #selenium-chromedriver

#python #селен #selenium-chromedriver

Вопрос:

Моя цель: автоматизировать скучную задачу на github

Что: я хочу нажать «добавить файл», а затем «создать новый файл» введите описание изображения здесь

Я не уверен, как получить элемент без идентификатора введите описание изображения здесь

Комментарии:

1. Используйте driver.find_element_by_class_name

Ответ №1:

Если идентификатор отсутствует или элемент имеет динамический идентификатор, используйте XPATH. Использование class не является идеальным, так как класс, возможно, будет повторно использоваться многими другими элементами.

В этом случае используйте этот XPATH: //summary[.//span[contains(text(),"Add file")]]

Лучшая практика: используйте плавное ожидание

 WebDriverWait(driver, 15).until(
        EC.visibility_of_element_located(
                (By.XPATH, '//summary[.//span[contains(text(),"Add file")]]')
        ))
 

Прочитайте документы о явном / свободном ожидании: https://selenium-python.readthedocs.io/waits.html#explicit-waits

Ответ №2:

Вы могли бы попробовать driver.find_element_by_xpath("[xpath goes here]")

Если вы хотите узнать больше, вот официальные документы для поиска элементов.

Ответ №3:

 from selenium import webdirver

#define your executable path 
browser = webdriver.Chrome(executable path="  ") 
browser.get("**")
browser.find_element_by_xpath("put your copied xpath here")
 

Комментарии:

1. вы также можете использовать by_class