1

我在本地服务器(Windows Server 2008)上运行 TeamCity 的 Selenium Webdriver 测试。当我尝试上传或下载文件时,我还使用测试自动化框架来处理浏览器的对话框。当我使用 NUnit 在本地计算机上运行测试时,一切正常。出现问题的测试:

  1. 点击浏览按钮
  2. 在浏览器对话框中输入应上传的文件的路径
  3. 点击打开按钮

当我通过 TeamCity 运行此测试时,单击浏览按钮后出现错误:“C:\WINDOWS\system32\config\systemprofile\Desktop 指的是一个不可用的位置。它可能在这台计算机的硬盘上,或者网络。检查以确保磁盘已正确插入,或者您已连接到 Internet 或您的网络,然后重试。如果仍然无法找到,则信息可能已移至其他位置”。据我了解,浏览器尝试打开上传文件所在的默认文件夹。如果我从我的 mashine 通过 NUnit 运行测试,这个文件夹位于我的文档中。当测试由 Teamcity 运行时,浏览器进程的所有者是 SYSTEM。因此,当应该找到上传的文件时,浏览器无法找到正确的位置。我尝试使用 regedit 更改 SYSTEM 的默认文件夹,但仍然出现错误。请帮我解决这个问题,伙计们。

4

1 回答 1

0

我强烈建议不要采用这种组合方法。如果你想测试文件传输的东西,你不应该尝试通过浏览器的文件选择器,因为它们脱离了 webdriver 的世界。相反,我建议将默认下载路径设置为 webdriver 配置中的属性。这样的事情应该做:

profile.SetPreference(“browser.download.folderList”, 1);
profile.SetPreference(“browser.download.manager.showWhenStarting”, false);
profile.SetPreference(“browser.helperApps.neverAsk.saveToDisk”, “application/xml”);

一篇关于该主题的好文章建议您甚至不需要它,而是使用称为Powder-Monkey的更好的解决方案来测试下载内容。

于 2013-05-13T16:12:23.983 回答