瀏覽器查看信息技巧和彈出框處理、多窗口切換

瀏覽器查看信息技巧?css

    webdriver對象的一些方法:html

         * 獲取當前窗口的title   driver.titleweb

         * 獲取當前窗口的地址url  driver.current_urlchrome

         * 隨着用戶的操做  title和current_url會變化瀏覽器

         * 截屏     driver.get_screenshot_file('ssl.png')less

     關於雙反斜槓和r的解釋:測試

          雙反斜槓'\\'是爲了防止轉義  咱們經常使用 '/'來表示相對路徑  用 ‘\’來表示絕對路徑ui

          寫法一:path = ‘C:\\adb\\selenium’url

          寫法二:path =r 'C:\adb\selenium'3d

          寫法三:path = 'C:/adb/selenium'

 

代碼實現:

from selenium import webdriver

# 指定是Chrome驅動

driver = webdriver.Chrome(r"C:\webdriver\chromedriver.exe")

# driver.implicitly_wait(10)   隱式等待

driver.get('https://www.baidu.com')

# driver.get('https://music.163.com')

# print(driver.title)

# print(driver.current_url)

# driver.get_screenshot_as_file('c:\\pei.png')

# 若是我想部分截屏,能夠經過查找元素來定位

ele = driver.find_element_by_css_selector('#su')

ele.screenshot('button.png')    # 百度一下的圖片

driver.quit()

=========================================================================================================================

切換窗口?

     切換到新的窗口裏面操做:

            * 循環遍歷  driver.window_handles

            * driver.switch_to.window(handle)方法切入新窗口

            * 檢查該窗口特色,是否爲要切入的那個

      切換到最初的窗口:

            * 保存主窗口的handle   driver.current_window_handle

      關閉窗口:

            * close方法

     

 

 

*注意*:close()與quit()方法發熱區別:close()是關閉當前窗口,而quit()是退出瀏覽器全部的窗口,可是不會退出chromedriver驅動,但仍處於代碼可執行狀態。

代碼實現:

import time

from selenium import webdriver

driver = webdriver.Chrome(r"C:\webdriver\chromedriver.exe")

driver.implicitly_wait(10)

driver.get('https://www.baidu.com/')

print(driver.title)

driver.find_element_by_id('kw').send_keys('鬆勤\n')

time.sleep(1)

driver.find_element_by_css_selector('div[id="1"] h3.t>a').click()

time.sleep(1)

print(driver.title)

# 獲取當前頁面的句柄

main_handle = driver.current_window_handle

# 獲取全部句柄

handles = driver.window_handles

for handle in handles:

      print(handle)

      driver.switch_to.window(handle)

     if '鬆勤網 - 鬆勤軟件測試' in driver.title:

            print('成功跳轉')

            break

# 點擊所有課程分類

driver.find_element_by_css_selector('a[href="/course/explore"]').click()

time.sleep(5)

# 切換到首頁句柄

driver.switch_to.window(main_handle)

print(driver.title)

 

driver.quit()

 

=========================================================================================================================


彈出框處理?

     對話框來講通常有三種:alert     confirm       prompt

     操做方法:driver.switch_to.alert.accept()  # 點擊OK

                   driver.switch_to.alert.text    # 獲得對話框內容

                   driver.switch_to.alert.dismiss()  # 點擊Cancel

                   driver.switch_to_alert.send_keys()   # 輸入內容

下面附上a1.html代碼截圖:

                           

     

代碼實現:

import time

from selenium import webdriver

driver = webdriver.Chrome(r"C:\webdriver\chromedriver.exe")

# driver.implicitly_wait(10)

driver.get('file:///C:/Users/Administrator/PycharmProjects/1120/web_driver/lesson4/al.html')

driver.find_element_by_id('b3').click()

time.sleep(3)

# driver.switch_to.alert.accept()   # 點擊OK的彈窗

# driver.switch_to.alert.dismiss()  # 點擊Cancel(有肯定、取消的彈窗)

txt = driver.switch_to.alert.text    # 獲得對話框內容

print(txt)

driver.switch_to.alert.send_keys('每天向上')

driver.switch_to.alert.accept()

# driver.find_element_by_id('other').click()

# driver.quit()

 

=========================================================================================================================

刷新頁面、前進、後退?

    * 刷新頁面  refresh

    * 前進  forword

    * 後退  back

代碼實現:

import time

from selenium import webdriver

driver = webdriver.Chrome(r"C:\webdriver\chromedriver.exe")

# ----------------------------------

driver.get('http://check.ytesting.com')

driver.find_element_by_id('username').send_keys('sdfdsf')

driver.find_element_by_id('password').send_keys('sdfdsf')

time.sleep(2)

# driver.refresh()

driver.back()

driver.forward()

# ----------------------------------

input('press any key to quit...')

driver.quit()   # 瀏覽器退出

相關文章
相關標籤/搜索