python прикрепленный файл селена, нет элементов для взаимодействия - PullRequest
1 голос
/ 01 августа 2020

Я пытаюсь прикрепить файл, используя селен, но на веб-сайте нет элемента для взаимодействия. Я попытался отправить ключи нескольким элементам в этом коде, которые связаны с вложением, но Selenium нужен элемент с type = "file", но в данном случае его нет. Веб-сайт также использует javascript. вот код с веб-сайта

<div id="multiattaches" class="multiattaches">
    
           <div class="multiattaches__content multiattaches__content_hidden" id="attachesContent">
            <div class="multiattaches__title">Attached files</div>
            <div class="multiattaches__clear" id="attachesClearContent">Delete all</div>
            <ol class="multiattaches__list" id="attachesList">
                
            </ol>
        </div>
    <div id="newAttachesLink" class="multiattaches__button" title="Attach a file">
        <i class="multiattaches__icon_attach"></i><span class="multiattaches__button__text">Attach</span>
    </div>
    <div class="multiattaches__count-attaches multiattaches__count-attaches_hidden" id="attachesCount">
        Files: <span id="attachesCountValue">-1</span>
    </div>
    <p id="newAttaches_info" class="new-attaches__info">Attach up to 32 files maximum 16 Mb per upload&nbsp;(.zip .txt .log .mqh .ex5 .mq5 .mq4 .ex4 .mt5 .set .tpl .cl .py .sqlite .csv .ipynb .gif .png .jpg .jpeg)</p>
</div>

Я могу щелкнуть эти 2 элемента, и появится диалоговое окно загрузки, но я не могу отправить ключи с файлом, который хочу добавить, появляется ошибка, что невозможно взаимодействовать с этими элементами

        <i class="multiattaches__icon_attach"></i>
<span class="multiattaches__button__text">Attach</span>

Можно ли вообще прикреплять файлы с помощью селена в этом случае? Если нет решения, как обойти это?

Я вручную отключил javascript для страницы, обновил его и попытался нажимать кнопки прикрепления, ничего не происходит (снова подтверждая, что он использует js)

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

1 Ответ

0 голосов
/ 01 августа 2020

Странно, теперь я вижу новую строку в коде

<div id="multiattaches" class="multiattaches">
    
           <div class="multiattaches__content multiattaches__content_hidden" id="attachesContent">
            <div class="multiattaches__title">Attached files</div>
            <div class="multiattaches__clear" id="attachesClearContent">Delete all</div>
            <ol class="multiattaches__list" id="attachesList" style="max-height: 376px;"><li id="at_1" class="multiattaches__item multiattaches__item_hidden"><input type="file" name="attachedFile" size="63" class="multiattaches__input" id="_1" accept=".zip,.txt,.log,.mqh,.ex5,.mq5,.mq4,.ex4,.mt5,.set,.tpl,.cl,.py,.sqlite,.csv,.ipynb,.gif,.png,.jpg,.jpeg"><div class="multiattaches__extension"></div><div class="multiattaches__desc"><div class="multiattaches__name"></div><div class="multiattaches__size"></div></div><div class="multiattaches__delete" title="delete" data-num="1"></div></li></ol>
        </div>
    <div id="newAttachesLink" class="multiattaches__button" title="Attach a file">
        <i class="multiattaches__icon_attach"></i><span class="multiattaches__button__text">Attach</span>
    </div>
    <div class="multiattaches__count-attaches multiattaches__count-attaches_hidden" id="attachesCount">
        Files: <span id="attachesCountValue">0</span>
    </div>
    <p id="newAttaches_info" class="new-attaches__info">Attach up to 32 files maximum 16 Mb per upload&nbsp;(.zip .txt .log .mqh .ex5 .mq5 .mq4 .ex4 .mt5 .set .tpl .cl .py .sqlite .csv .ipynb .gif .png .jpg .jpeg)</p>
</div>

Эта

<li id="at_1" class="multiattaches__item multiattaches__item_hidden"><input type="file" name="attachedFile" size="63" class="multiattaches__input" id="_1" accept=".zip,.txt,.log,.mqh,.ex5,.mq5,.mq4,.ex4,.mt5,.set,.tpl,.cl,.py,.sqlite,.csv,.ipynb,.gif,.png,.jpg,.jpeg"><div class="multiattaches__extension"></div><div class="multiattaches__desc"><div class="multiattaches__name"></div><div class="multiattaches__size"></div></div><div class="multiattaches__delete" title="delete" data-num="1"></div></li>

И она содержит необходимый элемент для работы селена

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