繁体   English   中英

python selenium 附加文件,没有可交互的元素

[英]python selenium attach file, no elements to interact with

我正在尝试使用 selenium 附加文件,但 web 站点没有可交互的元素。 我尝试将密钥发送到此代码中与附件相关的多个元素,但 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>

在这种情况下,甚至可以使用 selenium 附加文件吗? 如果没有,是否有解决方案如何绕过这个?

我手动禁用了页面的 javascript,刷新它并尝试单击附件按钮,没有任何反应(再次确认它使用 js)

我对 javascript 不太了解,所以这可能是错误的,但在这种情况下,imo 添加文件的唯一方法是创建和执行功能类似于原始的脚本,而不是从对话框中截取文件,而是直接转发它. 我只是不知道该怎么做。

奇怪,现在我在代码中看到了新行

<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>

它包含 selenium 工作的必要元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM