python selenium find elements by xpath возвращает список ссылок, но элемент не взаимодействует - PullRequest
0 голосов
/ 14 октября 2019

Я использую этот xpath // a [содержит (., 'Загрузить Python')] на www.python.org/downloads

в инструментах разработчика Chrome Я получаю 4 совпадения, каждое из которых соответствует следующему

<a class="button" href="https://www.python.org/ftp/python/3.7.4/python-3.7.4-macosx10.9.pkg">Download Python 3.7.4</a>
<a class="button" href="https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz">Download Python 3.7.4</a>
<a class="button" href="https://www.python.org/ftp/python/3.7.4/python-3.7.4.exe">Download Python 3.7.4</a>
<a class="button" href="https://www.python.org/ftp/python/3.7.4/python-3.7.4.exe">Download Python 3.7.4</a>

проблема только в том, что щелкает третий, остальные выдают ошибку ElementNotInteractableException: Сообщение: элемент не взаимодействует

если я печатаю текст каждого элемента, только третий отображаеттекст 'Скачать Python 3.7.4', остальное выведите на печать пустым

elems = driver.find_elements_by_xpath(
    "//a[contains(., 'Download Python')]")
for elem in elems:
    print("-------")
    print(elem.text)
    print(elem.tag_name)
-------

a
-------

a
-------
Download Python 3.7.4
a
-------

a

в результате только elems [3] .click works

1 Ответ

0 голосов
/ 14 октября 2019

Эта проблема не с вашим кодом, страница загрузки python определяет ОС, которую вы просматриваете, и показывает ссылку для скачивания только для этой ОС. Всего таких кнопок 4

        <div class="download-os-mac-osx" style="display: none;">

            <h1 class="call-to-action">Download the latest version for Mac OS X</h1>

            <p class="download-buttons">

                <a class="button" href="https://www.python.org/ftp/python/3.7.4/python-3.7.4-macosx10.9.pkg">Download Python 3.7.4</a>

            </p>
        </div>

        <div class="download-os-source" style="display: none;">

            <h1 class="call-to-action">Download the latest source release</h1>

            <p class="download-buttons">

                <a class="button" href="https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz">Download Python 3.7.4</a>

            </p>
        </div>

        <div class="download-os-windows" style="">

            <h1 class="call-to-action">Download the latest version for Windows</h1>

            <p class="download-buttons">

                <a class="button" href="https://www.python.org/ftp/python/3.7.4/python-3.7.4.exe">Download Python 3.7.4</a>

            </p>
        </div>

    <div class="download-unknown" style="display: none;">
        <h1 class="call-to-action">Download the latest version of Python</h1>
        <p class="download-buttons">

            <a class="button" href="/downloads/release/python-374/">Download Python 3.7.4</a>

        </p>
    </div>

Вам нужно выбрать ту, которая имеет style = "", остальные не будут отображаться на странице.

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