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

我可以使用Selenium将文件上传到远程服务器,但是即使文件被上传,文件选择器对话框仍然存在。Selenium常见问题解答指出:

“您无法直接与本机OS文件浏览器对话框进行交互,但是我们做了一些魔术操作,以便…。”考虑到此处使用的是“魔术”,因此我得到的行为并不奇怪。边缘有些粗糙。但是似乎有解决方法。我有以下代码:

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(),然后单击“转到”(经过测试,对我有用):

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()

以上是 selenium文件上传使文件选择器窗口打开(OS / X和Python) 的全部内容, 来源链接: utcz.com/qa/401374.html

回到顶部