【问题标题】:how do I get the size of the file before upload using Selenium如何在使用 Selenium 上传之前获取文件的大小
【发布时间】:2018-11-10 05:41:34
【问题描述】:

我已经尝试了好几天了..

我想在上传之前简单地获取文件的大小。

类似这样的:

IWebElement element = driver.FindElement(By.Id("FileUpload"));
string fileSizeInKB = element.GetAttribute("files[0].size");

或者这个:

IWebElement element = driver.FindElement(By.Id("FileUpload"));
string fileSizeInKB = element.GetAttribute("files")[0].size;

这些方式都不起作用,所以我想问我如何归档类似的东西?

【问题讨论】:

    标签: c# asp.net-mvc selenium selenium-firefoxdriver


    【解决方案1】:

    您可以使用 System.IO.File 命名空间

    byte[] buffer = System.IO.File.ReadAllBytes(@"yourfilename");
    int size = buffer.Length;
    

    更新

    IJavaScriptExecutor js = (IJavaScriptExecutor)driver;
    string title = (string)js.ExecuteScript("Your JavaScript Here");
    

    【讨论】:

    • 但那会得到文件系统中文件的文件大小,而不是客户端在浏览器中报告的文件大小。顺便说一下,在这种情况下它们是相同的,但您可以想象各种不同的场景。
    • 我特别想定位的值是 Javascript 中的这个:this.files[0].size
    • 那么你就可以使用IJavaScriptExecutor来执行javascript了。
    • 非常感谢 :) IJavaScriptExecutor 像梦一样工作:) 你应该编辑你的答案,并在你的答案中包含这两种方法供其他人查看:)
    • @Helbo - 干杯!
    猜你喜欢
    • 1970-01-01
    • 2011-05-10
    • 2011-11-21
    • 1970-01-01
    • 2011-02-12
    • 2020-07-22
    相关资源
    最近更新 更多