私はUbuntu14.04でSeleniumとFirefoxに取り組んでいます。私はsend_keys(Keys.CONTROL + 't')で新しいタブを作成しましたが、最初のタブでコマンドを与え続けました。UbuntuのSeleniumとFirefox:新しいタブに焦点を合わせる
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.keys import Keys
driver = webdriver.Firefox()
main_window = driver.current_window_handle
driver.get("https://www.google.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("http://www.bing.com")
driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL + 't')
driver.switch_to_window(main_window)
driver.get("https://github.com/login")
このコードの実行中にエラーはありません。
google.comにアクセスした後に新しいタブを作成し、新しいタブの空白のページに変更します。その後、私はdriver.switch_to_window(main_window)を書いて新しいタブに注目し、次の行のコードが新しいタブで確実に現れるようにしました。しかし、driver.get( "http://www.bing.com")が実行されると、画面はgoogle.comが存在する最初のタブに戻り、google.comをbing.comに変更します。次のコードでも同じです。別の新しいタブが作成されましたが、driver.get( "https://github.com/login")が実行され、bing.comがgithub.com/loginになったので、最初のタブに戻ります。
私は
main_window = driver.current_window_handleによって現在表示タブに焦点を当てたと思いました。
しかし、これはうまくいきませんでした。 どのように3つのタブに3つのWebページを読み込むことができますか?
仕様:
- セレン3.0.2
- のFirefox 45.0.1
- Ubuntuの14.04 AMDの64ビット
- のpython 2.7.6
これは私が探していますものではありません。私はタブを作成し、新しいタブに焦点を当てたいと思っていました。あなたの答えは、Firefoxの新しいウィンドウを作成し、それらの間を切り替えることです。 –
''新しいタブに焦点を当てる ''とはどういう意味ですか?そして何のために?新しいタブに切り替えることは、それに「集中する」ことを意味します...そうですか? – Andersson
正確ではありません。 Seleniumでは、新しいタブへの切り替えが行われても、新しいタブに注目すると何もできない場合があります。私が知る限り、スイッチングとフォーカシングは異なります。 https://gist.github.com/lrhache/7686903のコードを参照してください。 #現在のウィンドウにフォーカスを置くというコメントがあります。実際には現在の表示タブにフォーカスを当てます。 - > browser.switch_to_window(main_window) –