2

Ich versuche, den Speicherdateidialog (durch Drücken von Strg + s) in Chrome zu öffnen, während eine PDF-Datei angezeigt wird. Was ich momentan habe, scheint keine Tastenanschläge zu senden, da nichts passiert. Ich muss mir keine Sorgen darüber machen, was ich mit dem Speicherdatei-Dialog mache, sobald er geöffnet ist, ich muss ihn nur öffnen. Das ist, was ich habe jetzt:Selen C# -Sendebefehl in ChromeDriver senden

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

Tastenkombinationen funktionieren nicht mit 'Chrome'. Probieren Sie 'Firefox' statt – Andersson

+0

Die Anwendung muss in Chrome getestet werden. Gibt es eine andere Möglichkeit, ein PDF zu speichern? – Mike

+0

Sie können versuchen, 'String pageSource = driver.getPageSource();' zu verwenden, um Dateiinhalt als Zeichenfolge zu speichern, aber ich bin mir nicht sicher – Andersson

Antwort

0

Sie mit Robot API versuchen können, sobald die Tab geöffnet wird:

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

Das sollte funktionieren. Stellen Sie sicher, dass der Browser nicht minimiert ist.

+0

Sorry, ich hätte angeben sollen, dass ich C# benutze. Die Robot-Klasse funktioniert nicht für mich. – Mike

0

gewickelt ich mit Windows Forms, um es zu tun, was ich ohnehin mit der Datei speichern Dialog zu interagieren, tun würde, also bin ich über die Abhängigkeiten keine Sorgen. Ich habe Chrome angewiesen, die PDF-Datei anzuzeigen, und dann einen Befehl Strg + s gesendet.

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