selenium--元素定位
阿新 • • 發佈:2019-01-02
路徑 文本 輸入 定位 res 所有 key css 新頁面
1.id定位:find_element_by_id()方法,id屬性html中一般情況是唯一的
driver.find_element_by_id("kw")
2.name定位:find_element_by_name(),name在html中不一定是唯一的
driver.find_element_by_name("wd")
3.class定位:find_element_by_class_name()
driver.find_element_by_class_name("s_ipt")
4.tag定位:find_element_by_tag(),使用率低,每一個元素相當於一個tag,如<div><input><a>,html會有大量重復的tag
driver.find_element_by_tag_name("input")
5.link定位:find_element_by_link_text(),鏈接文本精準定位
driver.find_element_by_link_text("新聞")
6.partial link定位:find_element_by_partial_link_text(),鏈接文本模糊定位,通過部分文本信息來定位
driver.find_element_by_partial_link_text("新")
7.xpath定位:find_element_by_xpath()
7.1通過絕對路徑定位
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/div[1]/map/area")
7.2通過相對路徑定位
driver.find_element_by_xpath("//map/area")
driver.find_element_by_xpath("//map/.")
7.3通過元素屬性定位
driver.find_element_by_xpath("//area[@id]")
driver.find_element_by_xpath("//area[@title=\"點擊一下,了解更多\"]")
7.4通過層級與屬性的絕對路徑定位
driver.find_element_by_xpath("//span[@class=‘bg s_ipt_wr‘]/input")
driver.find_element_by_xpath("//form[@id=‘form‘]/span[2]/input")
7.5使用邏輯運算符定位
driver.find_element_by_xpath("input[@id=‘kw‘ and @class=‘su‘]/span/input")
8.css定位:find_element_by_css_selector(),可定位控件的任意屬性,定位速度比xpath快
8.1 driver.find_element_by_css_selector(".class") #css通過class屬性定位
8.2 driver.find_element_by_css_selector("#id") #css通過id屬性定位
8.3 driver.find_element_by_css_selector("input") #css通過標簽名定位,使用率低
8.4 driver.find_element_by_css_selector("span>input") #css通過父子關系定位,選擇父元素<span>的所有<input>元素
8.5 driver.find_element_by_css_selector("[name=kw]") #css通過屬性定位
8.6 driver.find_element_by_css_selector("span.bg_s_btn_wr>input#su") #css通過組合定位
9.用by定位:
需導入from selenium.webdriver.common.by import By
driver.find_element(By.ID,"kw")
driver.find_element(By.NAME,"wd")
driver.find_element(By.CLASS_NAME,"s_ipt")
driver.find_element(By.TAG_NAME,"input")
driver.find_element(By.LINK_TEXT,"新聞")
driver.find_element(By.PARTIAL_LINK_TEXT,"新")
driver.find_element(By.XPATH,"//*[@class=‘bg s_btn‘]")
driver.find_element(By.CSS_SELECTOR,"span.bg s_btn_wr>input#su")
以下是一個簡單的例子:
from selenium import webdriver import time driver = webdriver.Firefox() # driver = webdriver.Chrome() # driver = webdriver.Ie() driver.maximize_window() #窗口最大化 driver.get("http://www.baidu.com") print(driver.title) print("百度" in driver.title) print(driver.current_url) time.sleep(3) #等待3秒 driver.refresh() #刷新頁面 driver.find_element_by_id("kw").send_keys("selenium2") # id定位元素,輸入字符串 driver.find_element_by_id("kw").clear() #清楚輸入內容 driver.find_element_by_name("wd").send_keys("selenium3") # name定位,輸入內容 driver.find_element_by_id("su").click() driver.quit()
selenium--元素定位