Selenium for Python の新しいウィンドウに切り替える
Python を使用した Selenium 自動化では、複数のブラウザ ウィンドウを処理するのが一般的なタスクです。新しいウィンドウを開くリンクをクリックすると、フォーカスは元のウィンドウに残り、新しいウィンドウでアクションが実行されなくなります。
背景のウィンドウから新しく開いたウィンドウにフォーカスを切り替えるには、次のようにします。 driver.switch_to.window() メソッドを使用できます。ただし、これにはウィンドウの名前を知っている必要があります。
ウィンドウ名の検索
ウィンドウの名前を取得するには、window_handles プロパティを利用できます。現在アクティブなウィンドウ ハンドルのリストを返します。元のウィンドウのウィンドウ ハンドルは、リンクをクリックする前に保存できます:
window_before = driver.window_handles[0]
リンクをクリックした後、新しいウィンドウのウィンドウ ハンドルを取得できます:
window_after = driver.window_handles[1]
新しいウィンドウに切り替える
ウィンドウ ハンドルを取得したら、switch_to.window() メソッドを使用して新しいウィンドウに切り替えることができます。
driver.switch_to.window(window_after)
次に、フォーカスは新しいウィンドウにあり、要素のクリックやページ内の移動などのアクションを実行できます。
コード例
次のコードは、に切り替える方法を示しています。 Selenium for Python の新しいウィンドウ:
import unittest from selenium import webdriver class GoogleOrgSearch(unittest.TestCase): def setUp(self): self.driver = webdriver.Firefox() def test_google_search_page(self): driver = self.driver driver.get("http://www.cdot.in") window_before = driver.window_handles[0] print(window_before) driver.find_element_by_xpath("//a[@href='http://www.cdot.in/home.htm']").click() window_after = driver.window_handles[1] driver.switch_to.window(window_after) print(window_after) driver.find_element_by_link_text("ATM").click() driver.switch_to.window(window_before) def tearDown(self): self.driver.close() if __name__ == "__main__": unittest.main()
以上がSelenium for Python で新しいウィンドウに切り替えるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。