gpt4 book ai didi

selenium - selenium webdriver 如何上传文件到浏览器?

转载 作者:行者123 更新时间:2023-12-02 19:47:04 25 4
gpt4 key购买 nike

我是一名 javascript/java 开发人员,我一直在尝试弄清楚 selenium webdriver 自动化框架如何从文件系统上传文件。不可能通过 JavaScript 设置文件输入,因为这是一种安全违规。但不知何故,webdriver 可以使用以下命令来完成此操作:

driver.setFileDetector(new LocalFileDetector());
WebElement upload = driver.findElement(By.id("myfile"));
upload.sendKeys("/Users/sso/the/local/path/to/darkbulb.jpg");
driver.findElement(By.id("submit")).click();

所以他们是通过向其发送 key 来设置值的?我不明白。我查看了这里找到的源代码: http://code.google.com/p/selenium/source/checkout我仍然无法找到他们在哪里执行此操作。

编辑:我的问题不是如何使用 Selenium 来做到这一点,而是 Selenium 开发人员是如何使这成为可能的?他们是如何绕过 javascript 的安全限制的?他们如何上传文件?

最佳答案

问得好,伙计...他们编写了一个 HTTP 代理来解决 Javascript 安全限制。使用此代理可以绕过“同一主机源”策略的许多限制,即浏览器不允许 Javascript 调用除提供当前页面的服务器之外的任何内容。

此外,WebDriver 使用在操作系统级别触发事件的替代方法。由于这些“ native 事件”不是由浏览器生成的,因此这种方法规避了对合成事件施加的安全限制,并且由于它们是特定于操作系统的,一旦它们在特定平台上的一个浏览器上工作,则在另一浏览器中重用代码相对来说是相对容易的。简单。

上面的大部分内容都是从下面引用的。请阅读以下引用资料以获取有关 Selenium 内部结构的更多详细信息

http://www.aosabook.org/en/selenium.html

关于selenium - selenium webdriver 如何上传文件到浏览器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13963738/

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