2017-02-15 2 views
0

クロムドライバを駆動するためにキーボードショートカットを使用する予定です。私は適切な例を見つけることができません。セレンのpythonを使用して、キーストロークをクロムドライバに送ります。

selenium pythonでchromeriverをdriver.remoteオブジェクトとして読み込みます。私は要素にアクセスすることができ、これまでのところうまく動作します。私は要素にキーを送ることができます。

実際にブラウザのショートカットを送信する方法はわかりませんが、 driver.remoteにはsendkey関数がありません。要素だけがそれを持っています。

メニューのショートカットを開いてアクションを実行したい場合はできません。これを行う方法はありますか、それともセレン自体の範囲外ですか?

+0

私の知る限りでは、あなたがchromedriver' 'とキーの組み合わせを使用することはできません。あなたは正確に何をしたいですか?どのショートカットですか? – Andersson

+0

新しいウィンドウ、新しいタブ、保存ページ、読み込みページを開こうとしています。私はこれらのキーショートカットを "body"を選択して送信しようとしましたが、その場合でもアプリケーションはコマンドを取得しません。私はブラウザではなく、Webページ自体のテキストフィールドにのみテキストを送ることができます –

+0

'Save page'は' HTML'ページソースを保存することを意味しますか? – Andersson

答えて

0

あなたはchromedriverとキーの組み合わせを使用することはできませんが、必要なアクションを実行するために、いくつかのアプローチを試すことができます。

from selenium import webdriver 

driver = webdriver.Chrome() 
driver.get('/path/to/your/local/file.html') # To load page 
with open('/path/to/your/local/file.html', 'w') as f: 
    f.write(driver.page_source) # To save currently opened page HTML source code to local file 
driver.execute_script('window.open('https://google.com', 'new');') # To open Google page in new tab/window 
+0

ありがとうございます。これは私の負荷を解決し、ファイルを保存します。私はブラウザアプリの他の機能にアクセスすることはできません。 Seleniumが実際にWebページを実行するコンテナに操作の範囲を拡張することは決してありません。もちろん他にもオプションがあります。サブプロセスを開き、シェルショートカットを呼び出すようにします(私はOSX上です)。 Webdriverを呼び出すのと同じではありません。返信いただきありがとうございます! –

関連する問題