webdriver API:瀏覽器的控制
- 瀏覽器操作
最大化瀏覽器:maximize_window()
設定瀏覽器寬高:set_window_size(480,800)
前進:forward()
後退:back()
退出瀏覽器:quit()
from selenium import webdriver from time import sleep dr = webdriver.Firefox() dr.get("https://www.baidu.com") dr.set_window_size(600,800) sleep(1) dr.maximize_window() dr.quit()
輸入:send_keys()
清除:clear()
點選:click()
from selenium import webdriver from time import sleep dr = webdriver.Firefox() dr.get("https://www.baidu.com") dr.find_element_by_name('wd').send_keys('hello') sleep(1) dr.find_element_by_name('wd').clear() sleep(1) dr.find_element_by_xpath('//input[@maxlength="255"]').send_keys('selenium') sleep(1)
獲取輸入框尺寸:size //注意size不帶括號
返回文字資訊:text
返回元素屬性:get_attribute()
返回元素的結果是否可見:is_displayed() //可見返回true,不可見返回false
# -*- coding: UTF-8 -*- from selenium import webdriver dr = webdriver.Firefox() dr.get("https://www.baidu.com") s = dr.find_element_by_id('kw').size print s t = dr.find_element_by_partial_link_text('About').text print t n = dr.find_element_by_id('kw').get_attribute('name') print n i = dr.find_element_by_link_text('新聞').is_displayed() print i dr.quit()
- 滑鼠事件
模擬滑鼠行為需要匯入ActionChains類:from selenium.webdriver.common.action_chains import ActionChains
滑鼠懸停:ActionChains(驅動).move_to_element(懸停元素).perform()
from selenium import webdriver from time import sleep from selenium.webdriver.common.action_chains import ActionChains dr = webdriver.Firefox() dr.get("https://www.baidu.com") sz = dr.find_element_by_css_selector('a.pf:nth-child(8)') ActionChains(dr).move_to_element(sz).perform() sleep(5)
滑鼠右鍵:ActionChains(驅動).context_click(右鍵元素).perform()
滑鼠雙擊:ActionChains(驅動).double_click(雙擊元素).perform()
- 鍵盤事件
模擬鍵盤行為需要匯入Keys類:from selenium.webdriver.common.keys import Keys
輸入內容:send_keys('內容')
刪除一個字元:send_keys(Keys.BACK_SPACE)
空格:send_keys(Keys.SPACE)
組合鍵:send_keys(Keys.CONTROL,'a') //a全選,c複製,v貼上,x剪下
回車鍵:send_keys(Keys.ENTER)
回退鍵ESC:send_keys(Keys.ESCAPE)
- 獲得驗證資訊
獲取當前url:current_url
獲取當前頁面標題:title
獲取文字資訊:text
dr = webdriver.Firefox()
dr.get("https://passport.bilibili.com/login")
nowurl = dr.current_url
print nowurl
t = dr.title
print t n = dr.find_element_by_xpath('//div[@class="input-box"]/ul/li[5]/a').text print n