Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah anda bertukar ke tetingkap baharu dalam Selenium untuk Python?
Bertukar kepada Tetingkap Baharu dalam Selenium untuk Python
Dalam automasi Selenium menggunakan Python, mengendalikan berbilang tetingkap penyemak imbas adalah tugas biasa. Apabila pautan diklik yang membuka tetingkap baharu, tumpuan kekal pada tetingkap asal, menghalang tindakan daripada dilakukan dalam tetingkap baharu.
Untuk menukar fokus daripada tetingkap latar belakang kepada tetingkap yang baru dibuka, anda boleh menggunakan kaedah driver.switch_to.window(). Walau bagaimanapun, ini memerlukan mengetahui nama tetingkap.
Mencari Nama Tetingkap
Untuk mendapatkan semula nama tetingkap, anda boleh menggunakan sifat window_handles. Ia mengembalikan senarai pemegang tetingkap yang sedang aktif. Pemegang tetingkap untuk tetingkap asal boleh disimpan sebelum mengklik pautan:
window_before = driver.window_handles[0]
Selepas mengklik pautan, pemegang tetingkap untuk tetingkap baharu boleh diperolehi:
window_after = driver.window_handles[1]
Bertukar ke Tetingkap Baharu
Sebaik sahaja anda mempunyai pemegang tetingkap, anda boleh beralih ke tetingkap baharu menggunakan kaedah switch_to.window():
driver.switch_to.window(window_after)
Kini, tumpuan adalah pada tetingkap baharu, membolehkan anda melakukan tindakan seperti mengklik elemen dan menavigasi halaman.
Kod Contoh
Kod berikut menunjukkan cara menukar ke tetingkap baharu dalam Selenium untuk Ular sawa:
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()
Atas ialah kandungan terperinci Bagaimanakah anda bertukar ke tetingkap baharu dalam Selenium untuk Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!