2017-01-31 8 views
2

私はセレンを初めて使っています。新しいウィンドウをセレンで開き、画面の主ウィンドウとしてフォーカスすることは可能ですか?

私は、スタックオーバーフローなどの上で多くの回答を試してみました。私が見てきた質問の

Get focus on the new window in Selenium Webdriver and Python

Make sure that browser opened by webdriver is always in focus

なし私のために働くように見えるん。

私はpython 3.5と最新のセレンを使用しています。ウィンドウは開いて、私が言うことは何でも実行しますが、バックグラウンドにあり、決して焦点を当てません。私は行方不明のものがありますか?

私は窓の上で反復処理を試み、それぞれに焦点を合わせましたが、このいずれも機能しませんでした。

このツールを使用している理由は、スクリプトが実行されるときにブラウザを見ているようなことです。

ご提案は大歓迎です。おかげさまで

+0

タブや新しいウィンドウのネイティブサポートはありません。する必要がある場合は、新しいブラウザを作成することをお勧めします。 – taesu

+0

@taesuそのブラウザを自分のOSに集中させるにはどうすればよいですか?システムレベルで可能ですか?または、私はpyautoguiのような別のツールを使用してウィンドウに切り替える必要がありますか? –

答えて

1

AFAIK開いたタブ/ウィンドウのコンテンツの表示を自動的に制御することはできません。

from selenium import webdriver 

driver = webdriver.Chrome() 
driver.get("https://www.google.com") 
google_window = driver.current_window_handle # Define main window 
print(driver.title) # Title now is "Google". It is currently visible 

driver.execute_script("window.open('http://www.bing.com');") # Open Bing window 
bing_window = [window for window in driver.window_handles if window != google_window][0] # Define Bing window 
driver.switch_to_window(bing_window) 
print(driver.title) # Title now is "Bing". It is currently visible 
driver.execute_script("window.close();") # Close Bing window 

driver.switch_to_window(google_window) 
print(driver.title) # Now title is again "Google". It is currently visible 

また、あなたは現在のウィンドウで新しいページを開き、driver.back()driver.forward()と歴史の中でナビゲートするdriver.get(URL)を使用することができます。ただし、最後の以下のようなタブ/ウィンドウを開き、正確に現在のタブ/ウィンドウ上で何が起こるか見て処理することができます

+0

私がしようとしていることを達成するには、ウィンドウマネージャーツールを使用することをお勧めしますか? –

+0

私はウィンドウマネージャーを使用していないので、そのようなものはお勧めできません – Andersson

+0

最初の文章が私の質問に答えてから正しいとマークします。 –

関連する問題