Selenium WebDriver测试ActiveX控件

时间:2014-06-10 15:32:37

标签: c# selenium automated-tests

我一直在努力使用Selenium的IWebDriver为我的公司网站自动化一些测试,并且遇到了一些我无法自动化的ActiveX控件(一个选择和上传文件的对话框)。我无法在互联网上找到任何具体信息。

然而,我可以通过触发页面中的“open”元素来实际加载对话框(用户必须手动单击文件目标和打开按钮),但它无法通过测试(此代码对于我打开对话框的原因没有任何意义,我最初有相反的顺序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控制文件上传,它无论如何都不会工作。

有什么想法吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

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推动正确的方向。