[python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)
轉(zhuǎn)載地址:[python爬蟲] Selenium常見元素定位方法和操作的學(xué)習(xí)介紹
一. 定位元素方法
? ? ? ? 官網(wǎng)地址:http://selenium-python.readthedocs.org/locating-elements.html
? ? ? ? 這里有各種策略用于定位網(wǎng)頁中的元素(locate elements),你可以選擇最適合的方案,Selenium提供了一下方法來定義一個頁面中的元素:
- find_element_by_id
- find_element_by_name
- find_element_by_xpath
- find_element_by_link_text
- find_element_by_partial_link_text
- find_element_by_tag_name
- find_element_by_class_name
- find_element_by_css_selector
? ? ? ? 下面是查找多個元素(這些方法將返回一個列表):
- find_elements_by_name
- find_elements_by_xpath
- find_elements_by_link_text
- find_elements_by_partial_link_text
- find_elements_by_tag_name
- find_elements_by_class_name
- find_elements_by_css_selector
? ? ? ? 除了上面給出的公共方法,這里也有兩個在頁面對象定位器有用的私有方法。這兩個私有方法是find_element和find_elements。
?
二. 操作元素方法
? ? ? ? 在講述完定位對象(locate elements)之后我們需要對該已定位對象進(jìn)行操作,通常所有的操作與頁面交互都將通過WebElement接口,常見的操作元素方法如下:
- clear 清除元素的內(nèi)容
- send_keys 模擬按鍵輸入
- click 點(diǎn)擊元素
- submit 提交表單
- 舉例自動訪問FireFox瀏覽器自動登錄163郵箱。
三. WebElement接口獲取值
? ? ? ? 通過WebElement接口可以獲取常用的值,這些值同樣非常重要。
- size 獲取元素的尺寸
- text 獲取元素的文本
- get_attribute(name) 獲取屬性值
- location 獲取元素坐標(biāo),先找到要獲取的元素,再調(diào)用該方法
- page_source 返回頁面源碼
- driver.title 返回頁面標(biāo)題
- current_url 獲取當(dāng)前頁面的URL
- is_displayed() 設(shè)置該元素是否可見
- is_enabled() 判斷元素是否被使用
- is_selected() 判斷元素是否被選中
- tag_name 返回元素的tagName
? ? ? ? 舉例代碼如下:
四. 鼠標(biāo)操作
? ? ? ? 在現(xiàn)實(shí)的自動化測試中關(guān)于鼠標(biāo)的操作不僅僅是click()單擊操作,還有很多包含在ActionChains類中的操作。如下:
- context_click(elem) 右擊鼠標(biāo)點(diǎn)擊元素elem,另存為等行為
- double_click(elem) 雙擊鼠標(biāo)點(diǎn)擊元素elem,地圖web可實(shí)現(xiàn)放大功能
- drag_and_drop(source,target) 拖動鼠標(biāo),源元素按下左鍵移動至目標(biāo)元素釋放
- move_to_element(elem) 鼠標(biāo)移動到一個元素上
- click_and_hold(elem) 按下鼠標(biāo)左鍵在一個元素上
- perform() 在通過調(diào)用該函數(shù)執(zhí)行ActionChains中存儲行為
? ? ? ? 舉例如下圖所示,獲取通過鼠標(biāo)右鍵另存為百度圖片logo。代碼:
五. 鍵盤操作
? ? ? ? 參考:http://selenium-python.readthedocs.org/api.html
? ? ? ? 前面講述了鼠標(biāo)操作,現(xiàn)在講述鍵盤操作。在webdriver的Keys類中提供了鍵盤所有的按鍵操作,當(dāng)然也包括一些常見的組合鍵操作如Ctrl+A(全選)、Ctrl+C(復(fù)制)、Ctrl+V(粘貼)。更多鍵參考官方文檔對應(yīng)的編碼。
- send_keys(Keys.ENTER) 按下回車鍵
- send_keys(Keys.TAB) 按下Tab制表鍵
- send_keys(Keys.SPACE) 按下空格鍵space
- send_keys(Kyes.ESCAPE) 按下回退鍵Esc
- send_keys(Keys.BACK_SPACE) 按下刪除鍵BackSpace
- send_keys(Keys.SHIFT) 按下shift鍵
- send_keys(Keys.CONTROL) 按下Ctrl鍵
- send_keys(Keys.ARROW_DOWN) 按下鼠標(biāo)光標(biāo)向下按鍵
- send_keys(Keys.CONTROL,'a') 組合鍵全選Ctrl+A
- send_keys(Keys.CONTROL,'c') 組合鍵復(fù)制Ctrl+C
- send_keys(Keys.CONTROL,'x') 組合鍵剪切Ctrl+X
- send_keys(Keys.CONTROL,'v') 組合鍵粘貼Ctrl+V
? ? ? ? 這里使用的例子參考蟲師的書籍《selenium2?Python自動化測試》,推薦該書給大家。代碼還是非常有意思的,大家自己去感受下吧~
?
轉(zhuǎn)載于:https://www.cnblogs.com/shaosks/p/6722590.html
總結(jié)
以上是生活随笔為你收集整理的[python爬虫] Selenium常见元素定位方法和操作的学习介绍(转载)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 6.3 为高通 WiFi 7
- 下一篇: 如何在centos安装python3.4