【问题标题】:Unable to select ALT + s in C# Selenium Web Driver with AutoIt Automation Script无法使用 AutoIt 自动化脚本在 C# Selenium Web 驱动程序中选择 ALT + s
【发布时间】:2020-03-07 03:09:47
【问题描述】:

我有一个 C# Selenium WebDriver 脚本,它使用 AutoItX3Lib 来尝试执行 excel 文件的下载。

脚本在单击链接开始下载之前一直有效。

脚本的相关部分复制如下:

// Wait until "Contacts.xls" link displays
            WebDriverWait wait4 = new WebDriverWait(driver, TimeSpan.FromSeconds(300));
            wait4.Until(ExpectedConditions.ElementIsVisible(By.LinkText("contacts.xls")));

// Click "Contacts.xls"
driver.FindElement(By.LinkText("contacts.xls")).Click();

// Perform file download and saving using AutoIt
autoit.WinActivate("Opening contacts.xls","");
autoit.Send("{ALTDOWN}s{ALTUP}");
autoit.Sleep(3000);
autoit.Send("{ENTER}");

问题在于,在第一个发送命令 (autoit.Send("{ALTDOWN}s{ALTUP}");) 应该将 ALT + s 键发送到 Firefox 文件下载对话框窗口时,脚本会停止。但是,它不会将密钥发送到 Firefox 文件下载对话框窗口,而是将密钥发送到 Visual Studio(我用来创建和执行脚本的 IDE)。

提前致谢

【问题讨论】:

    标签: c# selenium-webdriver autoit-c#-wrapper


    【解决方案1】:

    我可以建议两个选项:

    1. 在单击下载之前创建并执行 AutoIt 脚本的 .exe 文件。 您可以获取更多详情here.

    2. 如果您只对 Firefox 感兴趣,那么最好配置和使用自动下载文件到所需位置的 Firefox 配置文件。您可以参考this link 以获取有关您需要设置的 Firefox 配置文件首选项的详细信息。

    【讨论】:

      【解决方案2】:

      尝试以下方法:

      // Click "Contacts.xls"
      driver.FindElement(By.LinkText("contacts.xls")).Click();
      Thread.Sleep(2000)
      

      我认为问题可能在于等待文件下载对话框窗口出现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多