Если идентификатор изменяется динамически, вы не можете использовать точный идентификатор для получения элемента, но запрос contains
может работать
Запросить любой элемент, который содержит api/services
в идентификаторе:
//*[contains(@id, 'api/services')]
Запрос на кнопку без какой-либо идентификационной информации. Имеет внутренние элементы span
и i
:
//button[span/i]
Запрос на элемент кнопки, содержащий api/services
в идентификаторе, а также внутренние элементы span
и i
:
//button[span/i and contains(@id, 'api/services')]
Чтобы сохранить идентификатор, вы хотите найти элемент, а затем получить его атрибут ID:
buttonId = driver.find_element_by_xpath("//button[span/i and contains(@id, 'api/services')]").get_attribute("id")