【问题标题】:Selenium C# send save command in ChromeDriverSelenium C# 在 ChromeDriver 中发送保存命令
【发布时间】:2017-07-06 04:07:48
【问题描述】:

我正在尝试在查看 pdf 文件时在 Chrome 中打开保存文件对话框(通过按 Ctrl+s)。我目前所拥有的似乎没有发送任何击键,因为什么都没有发生。保存文件对话框打开后,我无需担心如何处理它,我只需要打开它即可。这就是我现在拥有的:

Actions action = new Actions(driver);
action.MoveToElement(driver.FindElement(By.TagName("body")));
action.KeyDown(OpenQA.Selenium.Keys.Control).SendKeys("s").KeyUp(OpenQA.Selenium.Keys.Control);
action.Build();
action.Perform();

【问题讨论】:

  • 键组合不适用于Chrome。改用Firefox
  • 应用程序需要在 Chrome 中进行测试。有没有其他方法可以保存pdf?
  • 您可以尝试使用String pageSource = driver.getPageSource(); 将文件内容保存为字符串,但我不确定
  • 你可以试试键和弦组合。
  • 或者怎么样 - action.SendKeys(Keys.Control + "s");

标签: c# selenium selenium-webdriver automated-tests selenium-chromedriver


【解决方案1】:

标签打开后,您可以尝试使用 Robot API:

Robot key = new Robot();
            key.keyPress(KeyEvent.VK_CONTROL);
            key.keyPress(KeyEvent.VK_S);
            key.keyRelease(KeyEvent.VK_S);
            key.keyRelease(KeyEvent.VK_CONTROL);

这应该可行。确保浏览器没有最小化。

【讨论】:

  • 抱歉,我应该指定我使用的是 C#。机器人课程不适合我。
【解决方案2】:

我最终使用 Windows 窗体来执行此操作,无论如何我都会这样做以与保存文件对话框进行交互,因此我不担心依赖关系。我指示 Chrome 查看 pdf,然后发送 Ctrl+s 命令。

SendKeys.SendWait("^(s)");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-02-07
    • 2011-09-18
    • 2016-05-22
    • 1970-01-01
    • 2017-06-13
    • 2020-09-26
    • 1970-01-01
    相关资源
    最近更新 更多