我看过很多关于如何在 Edge 的“另存为”窗口中单击“Enter”的帖子,但似乎没有一个起作用。我正在尝试在本地计算机上下载文件,但似乎 ctrl + s 有效,但 Enter 无效。我正在使用以下内容:
using Framework.Core;
using OpenQA.Selenium;
using OpenQA.Selenium.Support.UI;
using System;
using System.Threading;
using System.IO;
using System.Linq;
using OpenQA.Selenium.Interactions;
using Assert = Microsoft.VisualStudio.TestTools.UnitTesting.Assert;
using SeleniumExtras.WaitHelpers;
似乎没有执行的代码:
driver.SwitchTo().Window(driver.WindowHandles[1]);
Thread.Sleep(4000);
Actions savePDF = new Actions(driver);
savePDF.KeyDown(Keys.Control)
.SendKeys("s")
.KeyUp(Keys.Control)
.SendKeys("test.pdf")
.SendKeys(Keys.Return)
.Build()
.Perform();
问题是,当我要下载的发票生成时,它会自动打开并聚焦于新选项卡,因此我不确定是否需要 driver.SwitchTo().Window(driver.WindowHandles[1]);
单击控件的第一部分有效,但第二部分应该有效,当出现“另存为”窗口时,将文件重命名为“test.pdf”,然后单击“返回”不起作用。将出现“另存为”窗口,但测试通过并且浏览器关闭,而“另存为”窗口保持打开状态。
我也尝试过 AutoIt,也发生了同样的事情。
我尝试了多种方法,但最终我只是坚持禁用它,要求下载 pdf 文件。遗憾的是,与 Chrome 相比,Edge 看起来确实很有限。
请参阅我的答案此处,将网页保存为单个 MHTML 文件(html + 独立文件中的所有资源)