文檔路徑:https://selenium-python.readthedocs.io/installation.htmlcss
如下代碼講解的是在windows系統上的操做html
1. 使用webdriver打開火狐瀏覽器
from selenium import webdriver
browser =webdriver.Firefox()
selenium內部有firefox瀏覽器,因此能夠直接打開 且對firefox的支持性最好
前端
firefox前端工具介紹
fireBug:Firefox瀏覽器下的一套開發類插件
做用:查看頁面上的元素,從而根據其屬性進行定位。
須要自行安裝,在firefox瀏覽器中開發者查找安裝
該工具裏能夠直接複製xpath,這比一個個xpath找方便多了。python
2.使用webdriver打開chrome瀏覽器
from selenium import webdriver
browser=webdriver.chrome()
若是隻安裝了chrome瀏覽器,直接經過webdriver打開會報錯
須要安裝chrome瀏覽器webdriver驅動
a.安裝chromedriver.exe(去網上找下載,貌似官網上沒有了)
b.windows系統須要添加環境變量web
chrome瀏覽器更方便chrome
3.瀏覽器窗口的一些操做windows
打開一個瀏覽器b
b =webdriver.Firefox()瀏覽器
關閉瀏覽器工具
b.quit() 性能
關閉窗口
b.close()
打開一個網頁
url='http://www.baidu.com'
b.get(url)
當前的url
b.current_url
當前頁面標題
b.title
返回到上一頁,也就是瀏覽器操做返回
b.back()
將窗口最大化
b.maximize_window()
窗口全屏
b.fullscreen_window()
4.頁面元素的定位及操做
經過檢查頁面查看元素的屬性,而後肯定使用何種方法查找該元素。
經過id查找到元素ele
ele=b.find_element_by_id('id1')
經過name屬性查找元素
ele=b.find_element_by_name('name1')
經過ClassName查找到元素
ele1=b.find_element_by_class_name('classname')
tag name 針對的是標籤名,經過tag name 查找元素
ele2=b.find_element_by_tag_name('input')
當頁面有不少個同類型的標籤,會返回第一個標籤
經過link text來查找標籤 對於a標籤,經過其text
ele3=b.find_element_by_link_text(‘百度連接’)
經過模糊查詢,只要text中有搜索的字樣就能夠查詢出來
ele4=b.find_element_by_partial_link_text(‘百度’)
經過css選擇器來定位元素 當有些元素沒有id name 等一些屬性能夠使用
css路徑在Firefox瀏覽器中經過安裝的 fireBug查找元素中複製css路徑來獲取的
ele5=b.find_element_by_css_selector(‘’css路徑‘’)
ele6=b.find_element_by_css_selector(' input [id=\'search \' ] ') css還有這種語法
ele7=b.find_element_by_css_selector(' input [type=」text 」 ] ') 能夠選擇任何屬性
ele8=b.find_element_by_css_selector(' img [alt=」水果圖片」 ] ')
其餘的css選擇器用法能夠網上查找,簡單的直接使用相關語法,複雜的經過firebug直接拷貝
經過xpath來查找定位元素
xpath用於在XML文檔中經過元素和屬性進行導航。是一個w3c標準。
xpath節點類型:
元素,屬性,文本,命名空間,指令處理,註釋及文檔
ele9=b.find_element_by_xpath(‘/div’)
/html/body/input[1] 絕對路徑下的input元素 【1】表示同級多個input時的第一個
//input 任意路徑下的input元素 查找到全部的input元素
ele9=b.find_element_by_xpath(‘/input’) 返回第一個元素
//input[2]
//input/p
//input//p
ele10=b.find_element_by_xpath(‘/input/..’) ele10是ele9的父節點
//input[@id] 有id屬性的input元素 也能夠經過其餘屬性查找元素
//input [ not(@id)] 沒有id屬性的input元素
//input[@name=‘firstname’] name 屬性爲firstname的input元素
//input[@id=‘id1’] id等於id1的input元素
//* 全部元素
//*[ count(input)=2 包含兩個input元素的元素
//*[local-name()="input"] 找到tag爲input的元素 找到多個元素時,返回的都是第一個元素
//*[starts-with(local-name(), 'i')] 找到全部tag以i開頭,如input img 標籤
//*[starts-with(local-name(), 'i')] [last()] 找到全部tag以i開頭,如input img 標籤 最後一個
//*[starts-with(local-name(), 'i')] [last()-1] 倒數第二個
//title | //input 查找全部的title或者input標籤
也能夠經過firebug查找元素,而後複製xpath
其實,對於使用者,xpath和css選擇器 哪一個習慣用哪一個。xpath更強大,而css選擇器語法更簡潔,且效率更高。
xpath性能差點,可是在瀏覽器中有比較好的插件支持。使用css selector跟xpath不須要安裝第三方什麼插件。
測
對查找到的元素操做
ele.clear()
元素的屬性
ele.size
ele.id
ele.name
ele.get_attribute('name') 獲取元素的name屬性的值
ele.tag_name 元素的標籤名