Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah anda bertukar ke tetingkap baharu dalam Selenium untuk Python?

Bagaimanakah anda bertukar ke tetingkap baharu dalam Selenium untuk Python?

Mary-Kate Olsen
Mary-Kate Olsenasal
2024-11-09 08:35:02482semak imbas

How do you switch to a new window in Selenium for 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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn