当前位置: 首页 > 面试题库 >

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

温举
2023-03-14
问题内容

我是一名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中的安全性限制?他们如何上传文件?


问题答案:

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

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

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

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



 类似资料:
  • 问题内容: 是否可以使用ajax将文件从浏览器升级到FTP服务器? 问题答案: 不会。浏览器不提供允许从JavaScript写入FTP的API。 您可以将文件发布到HTTP端点,然后使用服务器端代码将其推送到FTP服务器。

  • 问题内容: 我正在尝试找到一些利用node.js,Express和knox的示例代码。 Knox的文档仅给出有关如何上传已存储在文件系统中的文件的清晰示例。https://github.com/learnboost/knox#readme 此外,还有许多简单的教程(甚至在Express本身中),介绍了如何直接上传文件以表达并保存到文件系统。 我遇到的麻烦是一个示例,该示例使您可以将客户端上传的文件

  • 是否可以创建一个html表单,允许Web用户直接将文件上传到azure blob store,而不使用其他服务器作为中介?S3和GAW blob store都允许这样做,但我找不到对azure blob存储的任何支持。

  • 我们目前有一个小的web应用程序,其中一部分是文件上传。目前,我们在客户端上使用Plupload,并启用了分块功能,以允许上传大型文件。这些文件被保存在应用服务器上,当它们出现时,这些块被追加。 现在,我们正在使用AmazonS3来存储文件,并有可能使用多个应用服务器。我发现很难处理这些大块。我试着以他们为榜样,但我遇到了问题。我尝试的主要内容是这样的: 我的问题是我需要知道上传的块。当我从上传的

  • 本文向大家介绍跨浏览器拖放HTML文件上传?,包括了跨浏览器拖放HTML文件上传?的使用技巧和注意事项,需要的朋友参考一下 对于跨浏览器的HTML File Uploader,请使用FileDrop。它几乎可以在所有现代Web浏览器上使用。 根据官方规范- FileDrop是一个独立的跨浏览器,用于HTML5,旧版,AJAX,拖放,JavaScript文件上传

  • 有没有办法通过网络浏览器上传大文件(超过80 Gb)?以前我一直在使用plupload上传文件(img、png、jpg),但它似乎不适用于较大的文件。我也想知道如何实现一个网页,用户可以上传像Mega.co.nz或Drive.google.com。如果使用web开发工具无法做到这一点,有谁能指导我如何划分 谢谢。