2013-07-24 49 views
9

LinuxのChromeブラウザでキーボードショートカットを使用してdevtoolsを起動しようとしています。SeleniumとRubyでChromeにキーボードショートカットを送信する

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

Key press in (Ctrl+A) Selenium WebDriverで提案されているように)上記のコードはFirefoxで動作しますが、クロムでは、それがnilを返す:私はルビーを使用していますし、それが和音メソッドを持っていない、私は次のことを試してみたので、結果は生じません。

アドバイスはありますか?

+0

詳細を教えてください。どのようにnilを持っていますか?その出力をどこで見つけましたか? –

+0

コマンドラインでこのコードをデバッガモードで渡そうとしました。そのため、無視されていたエラーが返された場合は最初に手に入ることがありました。 「nil」は、エラーがない場合にアクションビルダが返すものです。ですから、Firefoxでこのコードを使用しようとしたときに成功した場合、nilが返されました。私がこのコードをchromeで使用しようとしたところ、成功しなかったので、nilも返されました。しかし、文法的に何かが間違っていると(私がkey_downメソッドを使って "i"を渡そうとした)、コマンドプロンプトにエラーが表示されました。 –

+0

私は '.send_keys(" i ")'を見ることができます。あなたは 'key_down'で* i *を渡しませんでした。 –

答えて

0

間違ったキーの組み合わせを使用していると思います。これによると:https://support.google.com/chrome/answer/171571?hl=en&ref_topic=25799、開発ツールを開くためのショートカットは、LinuxとWindowsではCtrl-Shift-J、MacではCmd-Opt-Iです。

+0

また、単にF12キーもLinuxでも動作します。 –

+0

私はF12や他のさまざまなテクニックを試しましたが、うまくいかなかったのです。 :/ –

0

dev-toolsを開くには、javaのロボットクラスを使用できます。セレンで

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

私が使用している:

ファンクションキーのF12を。

driver.FindElement(By.XPath("String")).SendKeys(Keys.F12); 
関連する問題