1.八種基本定位方式
id定位,使用方法: driver.find_element_by_id("id")
name定位,使用方法:driver.find_element_by_name("name")
class name定位,使用方法:driver.find_element_by_class_name("class name")
tag name 定位,使用方式:driver.find_element_by_tag_name("tag name")
link text 定位,使用方式:driver.find_element.by_link_text("link text")
partial link text定位,使用方式:driver.find_element_by_partial_link_text("partial link text")
xpath 定位,使用方式:driver.find_element_by_xpath("xpath")
css selector 定位使用方式:driver.find_element_by_css_selector("css selector")
以百度為例
這個是百度搜索輸入框的控件信息
這個是百度一下 按鈕的控件信息
使用id定位實例:
from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(30) driver.get("https://www.baidu.com/") driver.find_element_by_id("kw").send_keys("小渣仔") driver.find_element_by_id("su").click() driver.close()
使用name定位:
from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(30) driver.get("https://www.baidu.com/") driver.find_element_by_name("wd").send_keys("小渣仔") driver.find_element_by_id("su").click() driver.close()
只列出兩個實例,剩下的自己體會下。
小心得:最常用的 是 css、xpath、id 這三個,其它的有時會出現定位不到的問題。xpath 和 css 定位率較高,但是xpath效率慢,推薦使用css定位,定位准確且效率高。
css定位列子:
from selenium import webdriver driver = webdriver.Chrome() driver.implicitly_wait(30) driver.get("https://www.baidu.com/") driver.find_element_by_css_selector(".s_ipt").send_keys("小渣仔") driver.find_element_by_css_selector(".s_btn").click() driver.close()
如果定位失敗,會給出這個提示:
2.使用定位插件定位
定位控件的問題,用瀏覽器自帶的的開發者工具,有時無法滿足需求,需要使用第三方定位插件來輔助定位,目前主流的定位插件有火狐瀏覽器的Firebug、firepath、Selenium Builder、Ranorex Selocity等
本教程只講Ranorex Selocity的使用,其它插件自行百度使用。
Ranorex Selocity 下載地址:鏈接:https://pan.baidu.com/s/1YlgJBlXUD2kcXM667pNZfQ 提取碼:olge
安裝Ranorex Selocity 教程:
新建一個文件夾任意命名,把下載ranorex selocity 的壓縮包文件解壓到該文件夾。
開chrome,地址欄輸入chrome://extensions/ ,點擊開啟開發者模式
點擊加載以解壓的擴展程序
選擇解壓的文件夾,點擊確定,右上角出現如下圖的圖標表示安裝完成
使用Ranorex Selocity
打開瀏覽器,在地址欄 輸入 https://www.baidu.com/
F12 或者 鼠標右鍵-檢查,打開開發者工具欄,界面如下圖
點擊 elements,點擊選擇元素
再點擊 Ranorex Selocity
可以看到已經獲取了css,xpath,rxpath,點擊復制,粘貼到代碼里 就可以了。