【问题标题】:WebDriver / stuck when open upload file windowWebDriver / 打开上传文件窗口时卡住
【发布时间】:2013-02-05 18:22:15
【问题描述】:

我使用我的 WebDriver 和 FireFox。

我有一个元素://input[@class="uploadFiles"],当我点击它时: driver.findElement(By.xpath("//input[@class="uploadFiles"]")),打开了一个上传文件的窗口(Windows OS的窗口),但是测试没有继续到下一行,然后卡住。

有什么帮助吗?

【问题讨论】:

    标签: firefox selenium webdriver selenium-webdriver xpath


    【解决方案1】:

    Webdriver 不与操作系统级别的对话框交互,这就是它不继续到下一行的原因。这里有一些可以帮助你的东西:http://code.google.com/p/selenium/wiki/FrequentlyAskedQuestions#Q:_Does_WebDriver_support_file_uploads?

    【讨论】:

      【解决方案2】:

      不,你不能用 WebDriver 作为 niharika_neo 的答案,但你可以做下一步:

      string filepath = "my local path";
      _driver.FindElement(By.Id("attachments")).SendKeys(filepath);
      _driver.FindElement(By.Id("attachments")).SendKeys(Keys.Return);
      

      【讨论】:

      • 你的意思是我会这样做:_driver.FindElement(By.xpath(" //input[@class="uploadFiles")]).SendKeys(filepath); _driver.FindElement(By. xpath(" //input[@class="uploadFiles")]).SendKeys(Keys.Return);因为当我这样做时,窗户根本打不开
      • @Adam Sh 你不需要打开上传窗口,你需要传递完整的文件名,然后上传你的文件。
      • 但是我的线不是windows线!这是一个网站行,当我进入它时,它会打开一个窗口行
      • @Adam Sh 所以你测试应该检查打开的窗口并关闭它我理解你吗?
      • 不,我的测试应该做下一个:1)点击上传行(据我了解,这不是windows行,并且该行的xpath是://input[ @class="上传文件")])。 2) 然后它应该选择一个文件 - 这是一个 Windows 操作系统窗口。 3)然后它应该提交文件
      【解决方案3】:

      您不能直接与操作系统级别的 Windows 交互。您可以通过 niharika_neo 给出的路径,或者您可以使用 Auto IT 工具来处理操作系统级别的窗口。最好的选择是使用 Auto IT 工具。

      【讨论】:

        【解决方案4】:

        我在使用 FF 时遇到了同样的问题,然后我发现它是特定于我使用的 FF 版本的。我在 FF 11 上安装并运行了测试,我能够成功地运行他的测试。尝试更改您正在使用的 FF 版本。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-07-06
          • 1970-01-01
          • 1970-01-01
          • 2014-04-24
          • 2013-01-18
          • 1970-01-01
          相关资源
          最近更新 更多