<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                [TOC] 前言? ? 有些頁面的鏈接打開后,會重新打開一個窗口,對于這種情況,想在新頁面上操作,就得先切換窗口了。獲取窗口的唯一標識用句柄表示,所以只需要切換句柄,我們就能在多個頁面上靈活自如的操作了。 <br /> 一、認識多窗口 1.打開趕集網:http://bj.ganji.com/,點擊招聘求職按鈕會發現右邊多了一個窗口標簽 ![](https://yuedu.baidu.com/bookeditor/interface/imageview?book_id=0f6a093b7dd184254b35eefdc8d376eeaeaa17e3&file=b9dc0aae3a59c24d307151b828552712.png) 2.我們用代碼去執行點擊的時候,發現界面上出現兩個窗口,如下圖這種情況就是多窗口了。 ![](https://yuedu.baidu.com/bookeditor/interface/imageview?book_id=0f6a093b7dd184254b35eefdc8d376eeaeaa17e3&file=159c99b8ea691fc4baafc7658eaa525a.png) 3.到這里估計有小伙伴納悶了,手工點擊是2個標簽,怎么腳本點擊就變成2個窗口了,腳本執行默認是不加載配置的, 手工點擊是瀏覽器默認設置了新窗口打開方式為標簽,這里用鼠標按住點二個標簽,拖拽出來,也就變成2個標簽了,是一回事。 ![](https://yuedu.baidu.com/bookeditor/interface/imageview?book_id=0f6a093b7dd184254b35eefdc8d376eeaeaa17e3&file=163fd908c8a75ebfaa73e579beb6d952.png) <br /> 二、獲取當前窗口句柄 1. 元素有屬性,瀏覽器的窗口其實也有屬性的,只是你看不到,瀏覽器窗口的屬性用句柄(handle)來識別。 2. 人為操作的話,可以通過眼睛看,識別不同的窗口點擊切換。但是腳本沒長眼睛,它不知道你要操作哪個窗口,這時候只能句柄來判斷了。 3. 獲取當前頁面的句柄:driver.current\_window\_handle ``` # coding:utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("http://bj.ganji.com/") driver.implicitly_wait(10) h = driver.current_window_handle print(h) # 打印首頁句柄 ``` <br /> 三、獲取所有句柄 1. 定位趕集網招聘求職按鈕,并點擊 2. 點擊后,獲取當前所以的句柄:window\_handles ``` # coding:utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("http://bj.ganji.com/") driver.implicitly_wait(10) h = driver.current_window_handle print(h) # 打印首頁句柄 driver.find_element_by_link_text("工作").click() all_h = driver.window_handles print(all_h) # 打印所有的句柄 ``` <br /> 四、切換句柄 網上大部分教程都是些的第一種方法,小編這里新增一個更簡單的方法,直接從獲取所有的句柄list里面取值。 方法一: 1. 循環判斷是否與首頁句柄相等 2. 如果不等,說明是新頁面的句柄 3. 獲取的新頁面句柄后,可以切換到新打開的頁面上 4. 打印新頁面的title,看是否切換成功 方法二: 1. 直接獲取all\_h這個list數據里面第二個hand的值:all\_h\[1\] ``` # 方法一:判斷句柄,不等于首頁就切換 for i in all_h: if i != h: driver.switch_to.window(i) print(driver.title) # 方法二:獲取list里面第二個直接切換 driver.switch_to.window(all_h[1]) print(driver.title) ``` 五、關閉新窗口,切回主頁 1. 打開新頁面后,其實只想驗證新頁面跳轉對不對,這里可以做個簡單的驗證,獲取當前頁面的title驗證 2. 驗證完后切關閉新窗口 3. 切回句柄到首頁 4. 打印當前頁面的句柄,看是否切換到首頁了 ![Snipaste_2020-08-17_09-49-31.png](https://i.loli.net/2020/08/17/2wyBuJItLprH5iW.png) <br /> 六、參考代碼 ``` # coding:utf-8 from selenium import webdriver driver = webdriver.Chrome() driver.get("http://bj.ganji.com/") driver.implicitly_wait(10) h = driver.current_window_handle driver.find_element_by_link_text("工作").click() all_h = driver.window_handles # 方法一:判斷句柄,不等于首頁就切換 ''' for i in all_h: if i != h: driver.switch_to.window(i) print(driver.title) ''' # 方法二:獲取list里面第二個直接切換 driver.switch_to.window(all_h[1]) print(driver.title) # 關閉新窗口 driver.close() # 切換到首頁句柄 driver.switch_to.window(h) print(driver.title) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看