Selenium for Python で新しいウィンドウに切り替えるにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-11-09 08:35:02
オリジナル
473 人が閲覧しました

How do you switch to a new window in Selenium for Python?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート