2017-08-16 4 views
0

Ich versuche Opera zu einem Knoten in unserem Selenium Grid hinzuzufügen, aber mit einem Problem beim Schließen des Opera Browsers. In Opera schließt das Schließen der letzten Registerkarte in einem Browser den Browser nicht. Es startet stattdessen etwas namens Speed ​​Dial. Dies ist anscheinend das Standardverhalten in Opera. Ich habe versucht, die Schnellwahl zu deaktivieren, scheint dieses Verhalten jedoch nicht zu verhindern.Opera Browser über RemoteWebDriver vollständig schließen

Aufgrund der Tests, die über RemoteWebDriver ausgeführt werden, kann ich nicht einfach ein Skript auf dem Opera-Knoten aufrufen, um das Fenster zu schließen.

Ich habe die traditionelle Methode versucht, die die Registerkarte schließen aber dann startet Opera entweder eine leere oder Kurzwahl tab:

driver.close(); 
driver.quit(); 

Ich habe versucht, eine Aktion auszuführen und Schlüssel in den HTML-Körper zu senden:

Actions action = new Actions(driver); 
action.sendKeys(driver.findElement(By.xpath("//body")),Keys.CONTROL, Keys.SHIFT, "W"); 
action.build().perform(); 
driver.quit(); 

ich auch eine Aktion versucht haben, den Aufbau und Schlüssel in den Äther zu senden:

Actions action = new Actions(driver); 
action.sendKeys(Keys.CONTROL, Keys.SHIFT, "W"); 
action.build().perform(); 
driver.quit(); 

Hat jemand eine geeignete Problemumgehung für dieses "Feature" gefunden?

+0

Welches Betriebssystem verwenden Sie auf dem Remote-Computer? –

+0

@ShubhamJain Windows Server 2016 – Nick

Antwort

0

Ich habe einen Workaround dafür gefunden. Mein Code ist in C#

Utility.Instance.KillProcess("opera"); 
System.Windows.Forms.SendKeys.SendWait("{ESC}"); 
Utility.Instance.KillProcess("operadriverserver"); 

Ich hoffe, es wird Ihnen helfen.

+0

Danke Kapil, aber ich glaube nicht, dass Sie einen Prozess auf einem Remote-Rechner beenden können. – Nick

Verwandte Themen