【发布时间】:2019-09-04 13:44:52
【问题描述】:
我在 Dynamics 365 门户上运行的 Selenium UI 测试之一存在问题。测试很简单:
- 它登录到门户网站
- 导航到特定页面
- 使用
SendKeys从特定位置获取文件 - 点击上传按钮
当我运行此 UI 测试时,我收到一条消息,指出“请仅上传 csv 文件”。如果用户尝试上传不同的文件类型,这是正确的行为。但是,在这种情况下,文件扩展名是正确的,应该可以成功上传。如果我手动进入门户并自己上传相同的文件,它会正确上传。
有没有人在使用 D365 门户时遇到过类似的问题?或任何其他门户网站/网站?
下面是我点击上传按钮的代码。我用过By XPath、Id、LinkText等,一切正常。
public static void BulkUploadBrowse()
{
try
{
//Click upload button
var browse = Driver.Instance.FindElement(By.CssSelector("#AttachFile"));
browse.Click();
Thread.Sleep(1000);
}
catch (Exception ex)
{
throw (ex);
}
}
上传文件的逻辑如下:
public static void UploadFile()
{
// Method 1 : File Upload Using Send Keys
try
{
SendKeys.SendWait(@"C:\Users\Shea.Leonard\Desktop\Upload20190625161051.csv");
Thread.Sleep(1500);
SendKeys.SendWait(@"{ENTER}");
}
catch (Exception ex)
{
throw (ex);
}
}
我还尝试了另一种使用 AutoITX3 库的方法:
//Method 2 : File Upload Using Auto IT || Leaving this here incase method 1 stops working.
AutoItX3 autoIt = new AutoItX3();
autoIt.WinActivate("Open");
autoIt.Send(@"F:\Users\adm_shea.leonard\Desktop\Upload20190625161051.csv");
Thread.Sleep(1000);
autoIt.Send("{ENTER}");
但是,我仍然遇到同样的错误。
基于此它应该成功上传文件。不确定这是否是 Selenium WebDriver 和 D365 Portal 插件的问题。我们收到的错误消息“请仅上传 csv 文件”是在 Dynamics 门户的 Web 表单配置中指定的。
同一个文件是有效的,因为如上所述,我已经能够通过门户手动成功上传它。
任何帮助将不胜感激。
【问题讨论】:
标签: c# selenium selenium-webdriver selenium-chromedriver dynamics-365