python selenium-webdriver 標籤頁切換(十四)

來源:互聯網
上載者:User

標籤:handle   .com   img   點擊   資料   技術分享   logs   class   pat   

  測試過程中有時候會遇到點擊某個按鈕或者連結會彈出新的視窗,這時候我們的操作的頁面還保持著最初開啟頁面,但是此時我們需要操作新開啟的頁面上的功能,這個時候我們需要切換一下標籤頁 。

  其實頁面的切換與frame的切換比較相識,一種切換時本頁面內frame的操作,而標籤頁面是多頁面的操作,道理很相似。下面講解下操作頁面標籤會涉及到那些方法。

 

  • driver.current_window_handle                         #擷取當前視窗的控制代碼
  • driver.window_handles                                    #擷取所有視窗控制代碼
  • driver.switch_to_window(windowName)               #切換視窗的控制代碼

 

   視窗的切換比較容易,所以我們通過代碼詳細瞭解下頁面如何切換

import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.get(‘https://www.baidu.com‘)driver.maximize_window()driver.find_element_by_id(‘kw‘).send_keys(u‘夢雨情殤‘)  #搜尋“夢雨情殤的部落格”now_handle = driver.current_window_handle   #擷取當前視窗的控制代碼print(now_handle)  #列印當前視窗的控制代碼print(driver.title)  #擷取開啟頁面的標題driver.find_element_by_id(‘su‘).click() time.sleep(2)driver.find_element_by_xpath(‘//*[@id="1"]/h3/a‘).click()  #點擊第一條查詢的資料all_handles = driver.window_handles   #擷取到當前所有的控制代碼,所有的控制代碼存放在列表當中print(all_handles)  #列印控制代碼‘‘‘擷取非最初開啟頁面的控制代碼‘‘‘for handles in all_handles:    if now_handle != handles:        driver.switch_to_window(handles)print(driver.title)  #擷取切換後的標題time.sleep(3)driver.quit()

效果:

從例子中我們看到無論我們開啟幾個頁面,但是預設的控制代碼依然保持在最初開啟的頁面,如果想要操作後面的頁面的時候我們首先需要擷取到當前所有的開啟頁面的控制代碼,然後在遍曆選擇你需要的控制代碼,開啟標籤頁順序也就是列表存放的index順序,然後我們按照索引選擇,最後在切換到對應的頁面。最重要的是操作完成對應的頁面一定要切換回最初的標籤頁,然後通過最初的頁面進行切換,這邊避免最後自己也不知道在操作那個頁面,這個是自己的一點的經驗吧。

python selenium-webdriver 標籤頁切換(十四)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.