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控制文件上传。

任何想法吗?

谢谢!

Selenium WebDriver用于测试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在正确的方向上推动。