【问题标题】:Python Selenium Calling Hidden File InputPython Selenium 调用隐藏文件输入
【发布时间】:2016-08-12 22:05:21
【问题描述】:

我正在使用 selenium-python 和 chromedriver。

在网页中,即https://web.whatsapp.com/,我正在尝试将带有 send_keys() 的文件发送到文件类型输入。

但问题是,当您在网页上放置文件时,该输入元素仅在检查器中可见。如果您关闭该菜单(我不是指本机菜单)元素将从检查器中消失。

如果元素未显示,我如何调用该元素?

元素看起来像这样:

xpath='//*[@id="app"]/div/div[3]/div[1]/span[2]/span/div/div[2]/input'

<input type="file" accept="image/*,video/*" multiple="" style="display: none;">

我试过了

driver.execute_script("document.getElementById('parent_id').style.display='block';")

driver.execute_script("document.getElementByXpath('Xpath').sendKeys('file');")

但它们都不起作用。

【问题讨论】:

    标签: javascript python selenium input hidden


    【解决方案1】:

    如果您要使用文件输入元素,请尝试使其可见而不是其父元素,如下所示:

    xpath = '//*[@id="app"]/div/div[3]/div[1]/span[2]/span/div/div[2]/input'
    
    file = driver.find_element_by_xpath(xpath)
    
    file = driver.execute_script("arguments[0].style.display='block'; return arguments[0];", file)
    
    file.seng_keys("file")
    

    【讨论】:

    • 我得到 NoSuchElementException。Selenium 找不到元素。
    • 只有将文件拖放到网页上才能看到元素。
    • @.Saurabh 谢谢,但仍然找不到元素。
    猜你喜欢
    • 1970-01-01
    • 2016-12-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-19
    • 2013-10-05
    • 2013-02-12
    • 2015-08-14
    • 2012-06-16
    相关资源
    最近更新 更多