【发布时间】:2013-03-06 13:54:27
【问题描述】:
我正在为 Chrome 浏览器开发一个扩展程序。
我不想使用扩展名从input type="file" html 元素中选择文件。
但我知道由于安全限制,这是不可能的。
有没有办法移除与此问题相关的 Chrome 的安全限制,以便实现这一点。
谢谢。
【问题讨论】:
标签: javascript file-upload google-chrome-extension file-io
我正在为 Chrome 浏览器开发一个扩展程序。
我不想使用扩展名从input type="file" html 元素中选择文件。
但我知道由于安全限制,这是不可能的。
有没有办法移除与此问题相关的 Chrome 的安全限制,以便实现这一点。
谢谢。
【问题讨论】:
标签: javascript file-upload google-chrome-extension file-io
好的,我要回答我自己的问题。
首先感谢 Michael Dibbets 和 wtjones 的回答。
--disable-web-security and --allow-file-access-from-files 没用。
我没有选择原生插件和从源代码扩展 chrome,因为这似乎需要时间。
我使用 chromedriver 和 selenium java 来自动化 chrome。
在Slanec's Answer to this question 的帮助下,我能够务实地选择文件。
System.setProperty("webdriver.chrome.driver", "C:/.../chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("URL_OF_THE_PAGE");
WebElement link = driver.findElement(By.linkText("TEXT_IN_THE_LINK"));
link.click();
WebElement choose_file_input = driver.findElement(By.className("CLASS_OF_THE_INPUT"));
choose_file_input.sendKeys("PATH_TO_FILE");
谢谢!
【讨论】:
这是仅供个人使用的扩展程序吗?如果是这样,您可以使用 --disable-web-security 和 --allow-file-access-from-files。否则你可能需要使用原生插件:https://code.google.com/p/firebreath/
【讨论】:
--disable-web-security and --allow-file-access-from-files。然后我使用这个脚本来设置值。 $('input').value = "path_to_file" 但我收到一个错误:InvalidStateError Error: An attempt was made to use an object that is not, or is no longer, usable 任何想法?
下载 chromium 源代码并编译您自己的浏览器。
安全限制是有目的的,不能被规避(无论如何都不容易) 目的是用户可以从 google play 商店下载扩展程序,而不必担心扩展程序对其系统造成的风险。
【讨论】: