selenium 定位元素的方式一共 8個 通過 find_element_by_**** 可以更爲爲8種方式的任何一個定位定的都是單個元素
id 查找
name 查找
class_name 查找
以上三個都是根據標籤的屬性值來查找的
<input id="sid" name="sname" class="sclass"
tag_name基於多個同樣的標籤在同一個頁面
tag_name是根據標籤名來進行定位 顯示的第一個或者是唯一的一個標籤
link_text是根據帶有超鏈接功能的字符(漢字 字母 數字 特殊符號)
是寫超鏈接的文字
partial_link_text 是根據帶有超鏈接功能的字符的中一個字符(但是在同一頁面進行查找的時候一定要注意是否重複的字符)
xpath 是根據firexpath的插件來進行使用
css_selecto 是根據css來查找定位路徑
列表爲一個
查找多個元素的的時候
find_elements_by_
1.通過使用name與id用來執行輸入要搜索內容並點擊進行搜索
from selenium import webdriver
wb = webdriver.Firefox()
wb.get("http://www.baidu.com")
idNme = wb.find_element_by_id("kw")
idNme.send_keys("selenium")
wb.find_element_by_id("su").click()
1.通過使用name與id用來執行輸入要搜索內容並點擊進行搜索
from selenium import webdriver
wb = webdriver.Firefox()
wb.get("http://www.baidu.com")
idNme = wb.find_element_by_id("kw")
idNme.send_keys("selenium")
wb.find_element_by_id("su").click()
2.通過class_name執行翻頁
wb = webdriver.Firefox()
wb.get("https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=1&rsv_idx=1&tn=06074089_9_pg&wd=%E5%B0%8F%E8%AF%B4&rsv_pq=e4252067000f0f00&rsv_t=927eo6WbBvfHJr7CXHjAprEagd2hsZw%2Be6ijodw3ag%2BVtqkXq%2BoQJhF6KsKhTm4tvhsCHg&rqlang=cn&rsv_enter=0&rsv_dl=tb&rsv_sug3=10&rsv_sug1=10&rsv_sug7=101&inputT=3608&rsv_sug4=4192")
wb.find_element_by_class_name("n").click()
3.通過name來進行頁面登錄
wb = webdriver.Firefox()
wb.get("http://www.renren.com")
name = wb.find_element_by_name("email")
name.send_keys("1733933****")
namew = wb.find_element_by_name("password")
namew.send_keys("fan密碼****")
wb.find_element_by_id("login").click()
4.通過tag_name來執行
wb = webdriver.Firefox()
wb.get("http://cn.bing.com")
wb.find_element_by_tag_name("input").click()
5.通過link_text執行標籤檢索並進入
wb = webdriver.Firefox()
wb.get("http://bj.58.com")
wb.find_element_by_link_text("二手房").click()
6.通過partial_link_text執行標籤檢索並進入(模糊查詢)
wb = webdriver.Firefox()
wb.get("http://bj.58.com")
wb.find_element_by_partial_link_text("二手").click()
7.通過xpath地址進入詳情(使用inspect in FirePath進行來選擇元素並選擇xPath路徑地址並複製,粘貼到代碼的xPath路徑中)
wb = webdriver.Firefox()
wb.get("https://movie.douban.com/")
wb.find_element_by_xpath(".//*[@id='screening']/div[1]/h2/span[2]/a").click()
8.通過css_selector選擇器定位,查看元素,選擇元素,點擊列表中的item的標題,將選中的右鍵選擇唯一選擇器進行復制
driver = webdriver.Firefox()
driver.get("http://www.ziroom.com/z/z1/?utm_source=baidu&utm_medium=cpc&utm_term=%E8%87%AA%E5%A6%82&utm_content=ZFDYBJ17721&utm_campaign=PC-ZFJHBJ41")
list = driver.find_elements_by_css_selector("div.item> div:nth-child(2) > h5:nth-child(1) > a:nth-child(1)")
9.通過使用find_elements_by_css_selector查找當前列表所有的標題以及連接地址,查看元素,選擇元素,點擊列表中的item的標題,將選中的右鍵選擇唯一選擇器進行復制,將div.item後的:以及nth - child(2)刪除,列出當前列表所有的
driver = webdriver.Firefox()
driver.get("http://www.ziroom.com/z/z1/?utm_source=baidu&utm_medium=cpc&utm_term=%E8%87%AA%E5%A6%82&utm_content=ZFDYBJ17721&utm_campaign=PC-ZFJHBJ41")
list = driver.find_elements_by_css_selector("div.item> div:nth-child(2) > h5:nth-child(1) > a:nth-child(1)")
for x in list:
print("標題是:",x.text)
print(x.get_attribute('href'))
10.頁面表單切換(比如其他頁面值都是動態值,通過tag_name來進行查找,用switch_to.frame(進行切換)
from selenium import webdriver webdriver = webdriver.Firefox() webdriver.get("https://www.188.com/") webdriver.find_element_by_class_name("j-gopass").click() ifname = webdriver.find_element_by_tag_name("iframe") webdriver.switch_to.frame(ifname) number = webdriver.find_element_by_name("email") number.send_keys("17339333520") passwd = webdriver.find_element_by_name("password") passwd.send_keys("fan_33520") webdriver.find_element_by_id("dologin").click()
11.