Python에서 Selenium을 사용하여 여러 브라우저 창 간에 전환하는 방법은 무엇입니까?

Mary-Kate Olsen
풀어 주다: 2024-11-09 03:27:01
원래의
768명이 탐색했습니다.

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

Python에서 Selenium을 사용하여 여러 브라우저 창을 관리하는 방법

광활한 웹 자동화 영역에서는 여러 브라우저 창과 상호 작용해야 하는 경우가 많습니다. 브라우저 창 또는 탭. 업계 최고의 자동화 프레임워크인 Selenium은 Python 개발자가 이러한 과제를 원활하게 탐색할 수 있는 능력을 제공합니다.

웹 테스트 중에 직면하게 되는 일반적인 시나리오 중 하나는 링크를 클릭하면 새 브라우저 창이 열리는 것입니다. 새로 열린 창 내에서 효과적으로 작업을 수행하려면 배경 창에서 포커스를 다른 쪽으로 전환해야 합니다.

대상 창 핸들 찾기

새 창으로 전환하기 전 , 핸들을 식별해야 합니다. 이 고유 식별자는 특정 창 인스턴스를 나타냅니다. 핸들을 검색하기 위해 열려 있는 모든 창 핸들 목록을 반환하는 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" 웹사이트에 액세스하고 링크를 클릭하여 새 창을 엽니다. 그런 다음 두 창의 핸들을 검색하고 새로 열린 창으로 전환하여 추가 작업을 수행합니다.

위 내용은 Python에서 Selenium을 사용하여 여러 브라우저 창 간에 전환하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿