ホームページ  >  記事  >  バックエンド開発  >  Python で Selenium を使用して複数のブラウザ ウィンドウを切り替える方法?

Python で Selenium を使用して複数のブラウザ ウィンドウを切り替える方法?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-09 03:27:01743ブラウズ

How to Switch Between Multiple Browser Windows Using Selenium in Python?

Python で Selenium を使用して複数のブラウザ ウィンドウを管理する方法

Web オートメーションの広大な領域では、多くの場合、複数のブラウザ ウィンドウを操作する必要があります。ブラウザのウィンドウまたはタブ。業界をリードする自動化フレームワークである Selenium を使用すると、Python 開発者はこれらの課題にシームレスに対処できるようになります。

Web テスト中に遭遇する一般的なシナリオの 1 つは、リンクをクリックしたときに新しいブラウザ ウィンドウが開くことです。新しく開いたウィンドウ内でアクションを効果的に実行するには、フォーカスを背景ウィンドウから切り替える必要があります。

ターゲット ウィンドウのハンドルを見つける

新しいウィンドウに切り替える前に、そのハンドルを識別する必要があります。この一意の識別子は、特定のウィンドウ インスタンスを表します。ハンドルを取得するには、開いているすべてのウィンドウ ハンドルのリストを返す driver.window_handles メソッドを利用します。現在フォーカスされているウィンドウのハンドルが、このリストの最初の要素になります。

新しいウィンドウに切り替える

ターゲット ウィンドウのハンドルが得られたので、 driver.switch_to.window(handle) メソッドを使用して切り替えることができます。ターゲット ハンドルを渡すと、フォーカスが対応するウィンドウに効果的に移動し、そのコンテキスト内でアクションを実行できるようになります。

コード例

次の 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()

この例では、「http://www.cdot.in」Web サイトにアクセスし、リンクをクリックして新しいウィンドウを開きます。次に、2 つのウィンドウのハンドルを取得し、新しく開いたウィンドウに切り替えて、さらなるアクションを実行します。

以上がPython で Selenium を使用して複数のブラウザ ウィンドウを切り替える方法?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。