gpt4 book ai didi

python - 上传文件 - 使输入可见(错误 : ElementNotVisibleException)

转载 作者:行者123 更新时间:2023-12-01 04:12:13 27 4
gpt4 key购买 nike

目前我有此输入

<label class="bold grey-rectangle" data-uploading="Uploading" data-completed="Upload completed">
<span>+ Add certificate</span>
<input type="file" data-validation-allowing="jpg, jpeg, pdf" data-validation="mime" name="qualification2">
<div class="spinner hidden">
<div class="spinner-inner"></div>
</div>
</label>

并且我想将文件发送到同一地址,因此我运行以下代码:

self.driver.execute_script("document.getElementsByName('qualification2')[0].style.display='block';")
self.driver.find_element_by_name("qualification2").send_keys("certificate.jpeg")

但我收到以下错误

ElementNotVisibleException: Message: Element is not currently visible and so may not be interacted with

如何有效地使用 python 和 selenium 进行上传?

最佳答案

您应该尝试删除 hide以使元素可见:

elm = self.driver.find_element_by_name("qualification2")
self.driver.execute_script('arguments[0].removeAttribute("class");', elm)

elm.send_keys("/absolute/path/to/certificate.jpeg")
<小时/>

使用您提供的链接进行测试:

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://your/site")

elm = driver.find_element_by_name("qualification2")
driver.execute_script('arguments[0].removeAttribute("class");', elm)

elm.send_keys("/Users/user/Downloads/test.jpg")

制作:

enter image description here

请注意,在 Firefox 中,您还必须将 margin-left 样式属性重置为 0 以使元素真正可见:

driver.execute_script('arguments[0].removeAttribute("class"); arguments[0].style["margin-left"] = 0;', elm)

关于python - 上传文件 - 使输入可见(错误 : ElementNotVisibleException),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34778779/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com