代码之家  ›  专栏  ›  技术社区  ›  Sowiarz

如何用c#中的Selenium在Saucelabs测试中将图像上传到网页?

  •  2
  • Sowiarz  · 技术社区  · 12 年前

    我必须将任何图片上传到网页,以创建在线商店,继续测试。我必须点击上传按钮,然后我必须给出文件的目录,但我不能给出本地目录,因为测试在Saucelabs上的VM上运行。如何解决这个问题?

    1 回复  |  直到 12 年前
        1
  •  0
  •   JimEvans    12 年前

    使用 LocalFileDetector 班您的代码将如下所示:

    // WARNING!! Untested code written from memory, without benefit of an IDE.
    // May not work exactly correctly or even compile without modification. 
    // Assume driver is a properly instantiated IWebDriver object, which is
    // to be used with a remote service (including SauceLabs or similar).
    IAllowsFileDetection fileDetectionDriver = driver as IAllowsFileDetection;
    fileDetectionDriver.FileDetector = new LocalFileDetector();
    
    IWebElement fileElement = driver.FindElement(By.Id("idOfFileInputElement"));
    fileElement.SendKeys(@"C:\path\to\local.file");
    

    通过设置文件检测器 SendKeys 方法将首先将文件从本地系统上载到代码实际运行的远程计算机。然后 发送密钥 将在 <input> 元素,使用远程计算机上的本地文件路径。