Python에서 셀레늄을 사용하여 여러 브라우저 창을 관리하는 방법
브라우저 창 또는 탭. 업계 최고의 자동화 프레임 워크 인 Selenium은 Python 개발자에게 이러한 과제를 원활하게 탐색 할 수있는 기능을 제공합니다.
웹 테스트 중에 발생하는 일반적인 시나리오 중 하나는 링크를 클릭 할 때 새로운 브라우저 창이 열리는 것입니다. 새로 열린 창 내에서 동작을 효과적으로 수행하려면 백그라운드 창에서 초점을 멀리 전환해야합니다.
대상 창의 핸들을 찾는다
, 우리는 해당 핸들을 식별해야합니다. 이 고유 식별자는 특정 창 인스턴스를 나타냅니다. 핸들을 검색하기 위해 Driver.window_handles 메소드를 사용하여 모든 열린 창 핸들 목록을 반환합니다. 현재 집중된 창의 핸들은이 목록의 첫 번째 요소가 될 것입니다. Driver.switch_to.window (핸들) 메소드를 사용하여 전환 할 수 있습니다. 대상 핸들을 전달하면 해당 창으로 초점을 효과적으로 이동시켜 컨텍스트 내에서 작업을 수행 할 수 있습니다.
코드 예
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()다음 Python 코드는 방법을 보여줍니다. 새로 열린 창으로 전환하십시오 :
import UnitTest 셀레늄 수입 웹 드라이버에서 클래스 GoogleorgSearch (UnitTest.Testcase) : DEF 설정 (자체) : self.driver = webdriver.firefox () def test_google_search_page (self) : 드라이버 = 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 ']. 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 () __name__ == "__main__"인 경우 : UnitTest.main ()
이 예에서는 "http://www.cdot.in"웹 사이트에 액세스하고 새 창을 열 수있는 링크를 클릭합니다. 그런 다음 두 개의 창문의 손잡이를 검색하고 새로 열린 하나로 전환하여 추가 작업을 수행합니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3