瀏覽器查看信息技巧?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() # 瀏覽器退出