2013-07-24 14 views
9

Ich versuche, die Devtools in einem Chrome-Browser unter Linux mithilfe der Tastenkombinationen zu starten. Weil ich bin mit Ruby-und es ist kein Akkord Methode haben, habe ich versucht, die folgenden:Senden von Tastaturkurzbefehlen an Chrome mit Selenium und Ruby

driver.action.key_down(:shift) 
      .key_down(:control) 
      .send_keys("i") 
      .key_up(:shift) 
      .key_up(:control) 
      .perform 

Der obige Code wird in Firefox arbeiten (wie in Key press in (Ctrl+A) Selenium WebDriver vorgeschlagen), aber in Chrom, gibt sie nil aber es treten keine Ergebnisse auf.

Irgendwelche Ratschläge?

+0

Könnten Sie bitte mehr ausarbeiten? Wie hast du Nil? Wo hast du diese Ausgabe gefunden? –

+0

Ich habe versucht, diesen Code in einem Debugger-Modus an der Befehlszeile übergeben, so dass ich aus erster Hand sehen konnte, wenn Fehler zurückgegeben wurden, die ignoriert wurden. Es scheint, dass "Nil" ist, was der Aktionsbaustein zurückgibt, wenn kein Fehler vorliegt. Also, als ich versuchte, diesen Code in Firefox zu verwenden, und es erfolgreich war, wurde Nil zurückgegeben. Als ich versuchte, diesen Code in Chrome zu verwenden, und es nicht erfolgreich war, wurde auch nil zurückgegeben. Wenn jedoch etwas syntaktisch falsch war (beispielsweise habe ich versucht, "i" mit der Methode key_down zu übergeben), wurde an der Eingabeaufforderung ein Fehler angezeigt. –

+0

kann ich '.send_keys (" i ")' sehen. Du hast * i * mit 'key_down' nicht bestanden. –

Antwort

0

Ich denke, Sie verwenden nur eine falsche Tastenkombination. Demnach: https://support.google.com/chrome/answer/171571?hl=en&ref_topic=25799, ist die Verknüpfung zum Öffnen von Developer Tools Ctrl-Shift-J unter Linux und Windows und Cmd-Opt-I auf Mac.

+0

Oder einfach nur der F12-Schlüssel funktioniert auch in Linux. –

+0

Ich habe die F12 und verschiedene andere Techniken versucht, und es hat nicht funktioniert. : / –

0

Sie können die Roboterklasse von Java verwenden, wenn Sie dev-tools öffnen möchten.

try{ 
     Robot robot=new Robot(); 
     robot.keyPress(KeyEvent.VK_F12); 
     robot.keyRelease(KeyEvent.VK_F12); 
    } 
    catch(Exception ex){ 
     System.out.println(ex.getMessage()); 
    } 
1

In Selen habe ich verwendet:

Funktionstaste F12.

driver.FindElement(By.XPath("String")).SendKeys(Keys.F12); 
Verwandte Themen