2

Я пытаюсь открыть диалог сохранения файла (с помощью Ctrl + s) в Chrome при просмотре pdf-файла. То, что я сейчас имею, похоже, не посылает никаких нажатий клавиш, поскольку ничего не происходит. Мне не нужно беспокоиться о том, что я делаю в диалоговом окне сохранения файла, когда оно открыто, мне просто нужно открыть его. Это то, что я сейчас: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#. Класс Robot не будет работать для меня. – Mike

0

Я закончил с помощью Windows Forms, чтобы сделать это, что я собираюсь сделать так или иначе, чтобы взаимодействовать с диалоговым окном сохранения, поэтому я не беспокоюсь о зависимостях. Я направил Chrome для просмотра pdf-файла, а затем отправил команду Ctrl + s.

SendKeys.SendWait("^(s)"); 
Смежные вопросы