selenium(二)查找定位目標 ID XPATH CSS 操作目標
簡介:
我們只打開一個頁面是沒有什麽意義的。
盡管你可以get很多次。
selenium可以做的更多,比如找到百度的搜索框,輸入我們要搜索的內容,再用鼠標點擊搜索按鈕,再把搜索結果提取出來……
這篇文章,就是如何找到百度搜索框,輸入內容,點擊搜索。
原來喜歡用firebug,但是停止更新了,新的firefox開發了個什麽Firefox Developer Edition,裝了也不怎麽會用。
教程就用chrome吧。免插件。
一:認識頁面元素
<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新聞</a><input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off"> <input type="submit" id="su" value="百度一下" class="bg s_btn">
這是百度首頁當中的三個元素,第一行是頂部的新聞鏈結,第二行是搜索框,第三行是搜索按鈕。
二:認識查找元素的方法
selenium 下 webdriver 對象 有兩個方法來幫助我們查找頁面元素
driver.find_element()
driver.find_elements()
find_element是查找一個元素
find_elements是查找多個元素
具體方法有:
driver.find_element_by_id() driver.find_element_by_name() driver.find_element_by_xpath() driver.find_element_by_tag_name() driver.find_element_by_link_text() driver.find_element_by_class_name() driver.find_element_by_css_selector() driver.find_element_by_partial_link_text() driver.find_elements_by_id() driver.find_elements_by_name() driver.find_elements_by_xpath() driver.find_elements_by_tag_name() driver.find_elements_by_link_text() driver.find_elements_by_class_name() driver.find_elements_by_css_selector() driver.find_elements_by_partial_link_text()
個人比較喜歡用xpath,因為可以用很多工具生成,省去了自己分析目標頁面源碼的時間。
三:selenium操作目標
perform
reset_actions
click
click_and_hold
context_click
double_click
drag_and_drop
drag_and_drop_by_offset
key_down
key_up
move_by_offset
move_to_element
move_to_element_with_offset
pause
release
send_keys
send_keys_to_element
雖然有這麽多方法,但是我用的也很少啊。
我只用過click,點擊
send_keys,輸入。
以後用到再說吧。
context_click 右鍵點擊
double_click 雙擊
四:結合起來一起用
from time import sleep from selenium import webdriver #定義瀏覽器是firefox driver=webdriver.Firefox() #頁面打開百度 driver.get(‘http://www.baidu.com‘) sleep(1) #使用id查找kw,並輸入 淘寶 driver.find_element_by_id(‘kw‘).send_keys(‘淘寶‘) #使用id查找su,並點擊 driver.find_element_by_id(‘su‘).click() sleep(3) #使用name查找wd,清除內容 driver.find_element_by_name(‘wd‘).clear() #使用name查找wd,輸入python driver.find_element_by_name(‘wd‘).send_keys(‘python‘) #使用css selector 查找#su 並點擊 driver.find_element_by_css_selector("#su").click() sleep(3) #這些是使用xpath定位查找。 driver.find_element_by_xpath(‘//*[@id="kw"]‘).clear() driver.find_element_by_xpath(‘//*[@id="kw"]‘).send_keys(‘selenium‘) driver.find_element_by_xpath(‘//*[@id="su"]‘).click() sleep(3) driver.quit()
這段代碼就展示了,使用ID NAME CSS SELECTOR 來定位頁面元素,並且輸入文字,清除文字,點擊
五:獲取css_selector xpath
這個ID, NAME,頁面源碼裏面還好看到,css_selector xpath,可不好復制,其實也是一樣的復制,我是懶人。
1.先講firefox
在目標上點擊右鍵,選擇查看元素
下面會彈出查看器,並且有一行或幾行是加了底色的
在加了底色的這部分,繼續點右鍵,復制,xpath
好了,這就有了xpath參數。可以在這個搜索裏面驗證
沒有了firebug,默認的也就提取xpath了。
2,chrome中的操作
也是右鍵點擊,不過chrome叫檢查。
彈出的在右側,也有幾行加了背景色。
在有背景色這一部分右鍵
看到了xpath,還有一個selector 對應的是css_selector
好了,現在我們學會了如何使用瀏覽器來幫助我們找到xpath,css_selector,編寫你的代碼,去網站上轉一轉吧。
selenium(二)查找定位目標 ID XPATH CSS 操作目標