2

我試圖在瀏覽PDF文件時在Chrome中打開保存文件對話框(通過按Ctrl + s)。目前我沒有發送任何按鍵,因爲沒有任何事情發生。我不需要擔心保存文件對話框打開後我的操作,我只需要打開它。這是我現在有:Selenium C#在ChromeDriver中發送保存命令

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(); 
+1

按鍵組合不適用於Chrome瀏覽器。嘗試使用「Firefox」而不是 – Andersson

+0

該應用程序需要在Chrome中進行測試。有沒有其他的方式來保存pdf? – Mike

+0

您可以嘗試使用'String pageSource = driver.getPageSource();'將文件內容保存爲字符串,但我不確定 – Andersson

回答

0

你可以用機器人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); 

這應該工作。確保瀏覽器不會最小化。

+0

對不起,我應該指定我正在使用C#。機器人班不適合我。 – Mike

0

我最終使用Windows Forms來完成它,我打算做任何事情來與保存文件對話框交互,所以我不擔心依賴關係。我指示Chrome查看PDF,然後發送Ctrl + S命令。

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