gpt4 book ai didi

python - Selenium 文件上传使文件选择器窗口打开(OS/X 和 Python)

转载 作者:太空宇宙 更新时间:2023-11-04 01:09:07 28 4
gpt4 key购买 nike

我可以使用 Selenium 将文件上传到远程服务器,但文件选择器对话框甚至在文件上传后仍然存在。 The Selenium FAQ notes that ,“您不能直接与 native OS 文件浏览器对话框交互,但我们做了一些魔术,以便......”鉴于这里使用了“魔术”,我得到的行为有点粗糙也就不足为奇了边缘。但似乎有解决方法。从 this answer 中获取线索我有以下代码:

import contextlib, time
from selenium import webdriver
import selenium.webdriver.common.action_chains as action_chains
with contextlib.closing(webdriver.Chrome()) as driver:
driver.get("http://www.bing.com/images")
driver.find_element_by_id("sbi_t").click()
driver.find_element_by_id("sbi_file").click()
driver.find_element_by_id("sbi_file_upload").send_keys("//Loch Ness Monster.jpg")
print driver.current_url # Still `http://www.bing.com/images` :(
file_upload = driver.find_element_by_id("sbi_file_upload")
action_chains.ActionChains(driver).click(file_upload).perform() # https://stackoverflow.com/a/16864547/2829764

但最后文件上传窗口仍然存在。我怀疑我需要一个稍微不同的解决方法,因为我在 Mac 上。谁能帮忙?

最佳答案

根本不要点击上传按钮。

通过 send_keys() 设置文件名并点击“Go”(已测试并适用于我):

element = driver.find_element_by_id("sbi_file_upload")
element.send_keys('/Path/to/file.jpeg')
driver.find_element_by_css_selector('div#sbi_sb_ipt span[name=go]').click()

关于python - Selenium 文件上传使文件选择器窗口打开(OS/X 和 Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28799333/

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