一尘不染

Selenium Webdriver如何将文件上传到浏览器?

selenium

我是一名javascript /
java开发人员,我一直在尝试弄清楚seleniumwebdriver自动化框架如何从文件系统上载文件。无法设置通过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();

因此,他们通过发送密钥来设置值吗?我不明白
我浏览了以下源代码:http :
//code.google.com/p/selenium/source/checkout
我仍然找不到他们在哪里执行此操作。

编辑:我的问题不是如何用selenium来做到这一点,但是selenium开发人员如何做到这一点呢?他们如何解决javascript中的安全性限制?他们如何上传文件?


阅读 408

收藏
2020-06-26

共1个答案

一尘不染

好友问题…他们已经编写了HTTP代理来解决Javascript安全性限制。使用此代理可以避免“同一主机来源”策略的许多约束,在这些约束中,浏览器不允许Javascript调用除提供当前页面的服务器以外的任何对象。

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

上面的大部分内容都从下面引用。.do请阅读以下参考资料,以获取有关硒内部的更多详细信息

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

2020-06-26