【问题标题】:Selenium upload file to a webpageSelenium 将文件上传到网页
【发布时间】:2021-03-02 14:11:13
【问题描述】:

我正在尝试将文件上传到一个网站,该网站有一个用于上传文件的下拉框区域,我尝试了 element.click() 并显示弹出窗口以选择文件,当我尝试 element.send_keys('path ') 它引发消息:元素不可交互,如何解决这个问题。

这里是网站:http://shareclips.net

提前致谢。

【问题讨论】:

    标签: python selenium selenium-webdriver


    【解决方案1】:

    上传输入控件会打开一个原生对话框(由浏览器完成),因此通过 Selenium 单击控件或浏览按钮只会弹出对话框,测试将挂起。

    解决方法是通过 JavaScript 设置上传输入的值,然后提交表单。

    // simulate click
    webdriver.ActionChains(driver).move_to_element(element).click(element).perform()
    // driver is instance of webdriver
    driver.find_element_by_id("IdOfInputTypeFile").send_keys(os.getcwd()+"/video.mp4")
    

    os.getcwd() 返回当前工作目录。 video.mp4 位于同一目录中正在运行的脚本旁边。

    【讨论】:

    • 感谢您的建议,我已经尝试过这样的 driver.find_element_by_id("uploader-block").send_keys(os.getcwd()+"videos/video.mp4") 因为我有名为“videos”的目录中的视频,并且仍然会获得相同的可交互错误元素。
    • 我认为 selenium 没有找到元素 try time.sleep(10)
    • 是的,即使在 time.sleep(10) 之后仍然可以交互。
    • 我找到了,你需要通过 Javascript 点击元素,而不是 selenium 使用的“自然”点击(试图模拟用户体验)。所以看看我更新的答案。
    • 嗯我不知道我做错了什么,我创建了 element = driver.find_elemnt_by_id("upload-clickable") 和同样的错误
    猜你喜欢
    • 2020-08-29
    • 2021-05-18
    • 2019-01-30
    • 2015-08-27
    • 2016-10-28
    • 1970-01-01
    • 2020-05-12
    • 2011-09-18
    • 1970-01-01
    相关资源
    最近更新 更多