Selenium WebDriver用于测试ActiveX控件
本文关键字:ActiveX 控件 测试 用于 WebDriver Selenium | 更新日期: 2023-09-27 18:07:53
我一直在使用Selenium的IWebDriver为我的公司网站自动化一些测试,并且遇到了一些我似乎无法自动化的ActiveX控件(一个选择和上传文件的对话框)。我在网上找不到这方面的具体信息。
我,然而,能够通过触发页面中的"打开"元素来实际加载对话框(用户将不得不手动单击文件目的地和打开按钮),但它没有通过测试(这段代码对我来说没有意义,为什么它打开对话框,我最初有SendKeys和click颠倒顺序)。
private void UploadFile()
{
foreach (var element in driver.FindElements(By.TagName("button")))
{
string open = element.Text;
if (open == "Open")
{
element.SendKeys(@"My'Relative'Path");
element.Click();
}
}
}
我试图在我的代码中执行JavaScript来打开文件,但我的尝试每次都失败了,我的同事告诉我,无论如何都不会工作,因为ActiveX控制文件上传。
任何想法吗?
谢谢!
AutoIt就是这个问题的解决方案。我能够在我的c#项目中执行一个脚本。
private void UploadFile()
{
foreach (var element in driver.FindElements(By.TagName("button")))
{
string open = element.Text;
if (open == "Open")
{
element.SendKeys(@"C:'My'Relative'Path'");
element.Click();
string executable = @"C:'My'Relative'Path'fileUploadScript2.exe";
System.Diagnostics.Process.Start(executable);
}
}
}
感谢@SiKing在正确的方向上推动。