【问题标题】:Send_keys function does do its work as expected in Selenium pythonSend_keys 函数确实在 Selenium python 中按预期工作
【发布时间】:2018-05-30 06:32:54
【问题描述】:

以下 html 代码可用于上传文件,element.send_keys(absfilepath) 不起作用。将click 发送到元素后,它会在操作系统中打开文件上传窗口(在我的情况下是Linux),我无法与之交互。

用 Chrome、Firefox、PhantomJS 测试,没有任何结果。

<div class="col-sm-9">
    <input value="" class="select-file-button" type="button">
</div>

附加到 iQuery.ajaxFileUpload.js。这是文件后的结果 手动上传:

<div class="col-sm-9">
     <div class="ajax-fileupload" style="background-image: url(&quot;/Profishop/Temp/70a569b6747041bc88da3b74871afff7/Screenshot-2017-12-12%20Telegram%20Web.png&quot;);"><input type="button" class="delete-button"></div>
 </div>

我还在源代码中找到了input type="file" 元素,但它由脚本调用,并且无法在生成的页面中访问。

<div class="col-sm-9">
   <input type="file" class="afuProductImage" />
</div>

这是脚本

<script type="text/javascript">
//<![CDATA[
$(document).ready(function () {
               $(".afuProductImage").ajaxFileUpload({
               uploadHandler: "/aja/upload?id=70a569b6747041bc88da3b74871afff7&op=upload",
               deleteHandler: "/ajax/upload?op=deleteid=70a569b6747041bc88da3b74871afff7&name=",
               filePath: null,
               containerAttrs: {
               class: "ajax-fileupload"
                               },
                buttonAttrs: {
                value: ""
                 },
                });
               });//]]>
</script>

有没有办法通过发送 javascript 命令使用 selenium 上传文件?

【问题讨论】:

  • I couldn't interact with it你尝试了什么?
  • 实际上找不到访问选择文件打开窗口API的方法,我不知道该怎么做。有一些适用于 windows 操作系统的指南,但没有在 linux 上

标签: javascript python ajax selenium


【解决方案1】:

我们的想法是不惜一切代价不点击该元素,以避免打开“文件上传”窗口。

使用type="file" 找到input 元素,然后将密钥与您要上传的文件的绝对路径一起发送给它。

【讨论】:

  • 源代码中有input 元素和type="file",但是当我尝试访问它时,错误表明元素类不可用。有一个 script 调用该输入。
  • @King110 对于初学者,您可以尝试使元素可见 - 例如stackoverflow.com/a/25725701/771848。有没有办法让我们也可以重现问题?可以分享你正在做的网页的网址吗?..谢谢。
猜你喜欢
  • 2021-02-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-05
  • 1970-01-01
  • 2018-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多