Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimana untuk Beralih ke Tetingkap Baharu dalam Selenium untuk Python?

Bagaimana untuk Beralih ke Tetingkap Baharu dalam Selenium untuk Python?

DDD
DDDasal
2024-11-08 13:00:02251semak imbas

How to Switch to a New Window in Selenium for Python?

Bertukar kepada Windows Baharu dalam Selenium untuk Python

Dalam Selenium untuk Python, mengendalikan berbilang tetingkap penyemak imbas boleh menimbulkan cabaran. Apabila tetingkap baharu dibuka selepas mengklik pautan, tumpuan kekal pada tetingkap asal, menghalang tindakan daripada dilakukan dalam tetingkap baharu. Untuk menangani isu ini, anda perlu menukar fokus pemandu ke tetingkap baharu.

Menentukan Nama Tetingkap

Kaedah driver.switch_to.window() memerlukan nama tingkap. Walau bagaimanapun, Selenium tidak menyediakan cara langsung untuk mendapatkan nama ini. Sebaliknya, anda boleh menggunakan atribut window_handles untuk mendapatkan senarai pemegang tetingkap, yang merupakan pengecam unik.

Menukar Fokus kepada Tetingkap Baharu

Berikut ialah langkah-langkah untuk cara menukar fokus kepada tetingkap baharu:

  1. Sebelum mengklik pautan, simpan pemegang tetingkap semasa sebagai window_before.
  2. Selepas mengklik pautan, simpan pemegang tetingkap tetingkap baharu sebagai window_after.
  3. Gunakan kaedah switch_to.window() untuk beralih ke tetingkap baharu: driver.switch_to.window (tetingkap_selepas).

Contoh Kod

Kod Python berikut menggambarkan cara mengendalikan berbilang tetingkap penyemak imbas dan menukar fokus kepada tetingkap baharu:

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 Bagaimana untuk Beralih 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