无法在带有AutoIt自动化脚本的c# Selenium Web Driver中选择ALT + s
本文关键字:Driver Web Selenium 选择 ALT AutoIt 脚本 自动化 | 更新日期: 2023-09-27 18:02:55
我有一个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("{aldown}s{ALTUP}");),它应该发送ALT + s键到Firefox文件下载对话框窗口,脚本停止。但是,它没有将密钥发送到Firefox文件下载对话框窗口,而是将密钥发送到Visual Studio(这是我用来创建和执行脚本的IDE)。
Thanks in Advance
我有两个建议:
-
在点击下载之前创建并执行AutoIt脚本的。exe文件。
-
如果你只对Firefox感兴趣,那么最好配置&使用Firefox配置文件自动下载文件到所需的位置。您可以参考此链接获取需要设置的Firefox配置文件首选项的详细信息。
尝试如下:
// Click "Contacts.xls"
driver.FindElement(By.LinkText("contacts.xls")).Click();
Thread.Sleep(2000)
我认为问题可能在于等待文件下载对话框窗口出现