Я думаю, что это должно быть так:
driver.find_element_by_xpath("//*[contains(local-name(), 'svg') and contains(@id, 'abc123')]")
РЕДАКТИРОВАТЬ
Простой driver.find_element_by_id("abc123")
должен найти элемент, независимо от того, является ли узелsvg
, div
или еще что-нибудь.
Возможно, это проблема синхронизации, т.е.find_element
срабатывает до того, как элемент присутствует на странице.Вы можете попробовать expected_conditions
с presence of element located
или даже лучше - visibility
https://seleniumhq.github.io/selenium/docs/api/py/webdriver_support/selenium.webdriver.support.expected_conditions.html
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
wait = WebDriverWait(driver, 20)
wait.until(EC.presence_of_element_located((By.ID, "abc123")))
driver.find_element_by_id("abc123")