python中通過selenium簡單操作及元素定位知識點總結
瀏覽器的簡單操作
# 導入webdriver模塊
# 創(chuàng)建driver對象,指定Chrome瀏覽器
driver = webdriver.Chrome()
# 窗口最大化
driver.maximize_window()
# 訪問百度
driver.get("http://baidu.com")
driver.get("http://sina.com")
# 后退
driver.back()
# 前進
driver.forward()
# 刷新
driver.refresh()
# 關閉窗口
driver.close()
# 關閉會話,關閉瀏覽器,關閉chromedriver
driver.quit()
selenium的8種定位方式
6種靠單一的特征來找元素(id, calss_name, tag_name, name, link_text(2))
組合各種特征和關系來找元素(xpath, css)
1.id定位:唯一
find_element_by_id()
2.name定位:不唯一
find_element_by_name()
find_elements_by_name()
3.class定位:不唯一
find_element_by_class()
4.tag_name定位:不唯一
find_element_by_tag_name() # 單數(shù),在DOM頁面中,匹配到的第一個元素
find_elements_by_tag_name() # 復數(shù),返回的是一個列表,元素為webElement對象,全部匹配的元素
5.文本匹配:/完全匹配/部分匹配
find_element_by_link_text()
find_element_by_partial_link_text()
Xpath定位:
1.通過自己來定位:
語法://標簽名[@屬性名=值]
例如:
//*[@id="mCon"]/span # *匹配所有元素
//*[@id="kw"]
2.通過文本來定位:
語法://標簽名[text()="值"]
例如:
//h1[(text()= "第20期")] # 完全匹配
//h1[contains(text(), "第20期")] # 部分匹配,包含
3.層級定位:
如果找到的元素有兩個或多個完全一樣的元素,那么就通過他們不同的父級或父級的父級來定位
/ 絕對定位,單斜杠只能寫子級,不能跳級寫
// 相對定位,雙斜杠可以寫子級,子級的子級等等(推薦使用)
舉例說明:

l 輸入賬號 //div//input[@name="account"] //div[@class="padding-cont pt-login"]//input[@placeholder="郵箱/賬號/手機號"] l 輸入密碼 //div[@class="padding-cont pt-login"]//input[@name="pass"] //div[@class="padding-cont pt-login"]//input[@type="password"] l 下次自動登錄 //div[@class="padding-cont pt-login"]//a[text()="下次自動登錄"] //div[@class="padding-cont pt-login"]//a[@class="auto-login fl"] l 忘記密碼 //div[@class="padding-cont pt-login"]//a[@class="forget fr"] //div[@class="padding-cont pt-login"]//a[text()="忘記密碼?"] l 登錄按鈕 //div[@class="padding-cont pt-login"]//a[@class="btn-btn"] //div[@class="padding-cont pt-login"]//a[text()="登錄"]
Xpath軸定位:
含義:通過同級目錄來定位元素,叫做軸定位
軸運算:
ancestor:祖先節(jié)點,包括父節(jié)點
parent:父節(jié)點
preceding-sibling:當前元素節(jié)點標簽之前的所有兄弟節(jié)點
following-sibling:當前元素節(jié)點標簽之后的所有兄弟節(jié)點
preceding:當前元素節(jié)點標簽之前的所有節(jié)點(HTML頁面先后順序)
following:當前元素節(jié)點標簽之后所有的節(jié)點(HTML頁面先后順序)
軸定位語法:
/軸名稱::標簽名稱[@屬性名=值]
示例:例://div//table//td//preceding::td
應用場景:
頁面顯示為一個表格樣式的數(shù)據(jù)列,需要通過組合來定位元素
以上就是本次介紹的全部知識點內容,感謝大家對腳本之家的支持。
相關文章
Python3.6 Schedule模塊定時任務(實例講解)
下面小編就為大家?guī)硪黄狿ython3.6 Schedule模塊定時任務(實例講解)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Python如何基于rsa模塊實現(xiàn)非對稱加密與解密
這篇文章主要介紹了Python如何基于rsa模塊實現(xiàn)非對稱加密與解密,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-01-01
詳解PyQt5 GUI 接收UDP數(shù)據(jù)并動態(tài)繪圖的過程(多線程間信號傳遞)
這篇文章主要介紹了PyQt5 GUI 接收UDP數(shù)據(jù)并動態(tài)繪圖(多線程間信號傳遞),本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-09-09

