Selenium: получение URL файла из WebElement (django, pytest)

Я пытаюсь протестировать веб-приложение django с помощью Selenium и pytest.

На моей тестовой странице есть следующая ссылка, отображаемая в таблице (наряду с другими ссылками того же формата):

<a href="/download_file/?file_path=serve/myid/results_XYZ.csv"><input type="button" value="Results (.csv)" /></a>

Я могу получить этот webelement, используя следующий код:

input_fields = self.driver.find_elements(By.CSS_SELECTOR, '\\input')
for elem in input_fields:
    value = elem.get_attribute("value")
    if value == "Results (.csv)":
        csv_link = elem
    # more elif clauses to get the various links

вызов .click() на этом веб-элементе приводит к успешной загрузке файла, так что это работает.

Теперь мне также нужно извлечь фактическую ссылку на скачивание из этого элемента, чтобы получить имя файла.

Что я пробовал:

print(mylink.get_attribute("href"))  # prints None
print(mylink.get_attribute('outerHTML'))  # prints <input type="button" value="Results (.csv)">
print(mylink.get_attribute('innerHTML'))  # prints nothing
print(mylink.get_attribute("ownerElement"))  # prints None

Последнее меня удивляет, потому что следующее:

mydic = mylink.get_property('attributes')[0]
for key in mydic:
    print(f"\t{key}:\t{mydic[key]}")

печатает, среди прочего, ownerElement: <selenium.webdriver.remote.webelement.WebElement (session="c470b6e33d0b2fbec3f1a0e7e26dec55", element="81bdc092-0b8b-4069-a1ec-8a685fda18a5")>

Так что я в замешательстве, почему я не могу получить этот ownerElement. А также, почему .get_attribute('innerHTML'), который я видел рекламируемым везде, не дает мне ничего.

Но в основном мне нужно знать: Как мне получить файл-url из такой ссылки на скачивание?

Вернуться на верх