1. 程式人生 > >二、selenium元素定位

二、selenium元素定位

定位單元素:element

By定位需要匯入By類:from selenium.webdriver.common.by import By

id定位:

driver.find_element_by_id('kw')
driver.find_element(By.ID, 'kw')

name定位:

driver.find_element_by_name('wd')
driver.find_element(By.NAME,'wd')

class name定位:

driver.find_element_by_class_name('s_ipt')
driver.find_element(By.CLASS_NAME,'s_ipt')

tag_name定位:

driver.find_element_by_tag_name('input')
driver.find_element(By.TAG_NAME,'input')

link_text定位:

driver.find_element_by_link_text('hao123')
driver.find_element(By.LINK_TEXT,'hao123')

partial_link_text定位:                  

driver.find_element_by_partial_link_text('hao1')
driver.find_element(By.PARTIAL_LINK_TEXT,'hao1')

注:link_text和partial_link_text是專門用於定位超連結的,html頁面中的<a>標籤;兩者的區別在於link_text是定位完整的超連結文字,partial_link_text則只寫部分超連結文字。

xpath定位:

# 絕對路徑定位:定位div標籤下的第二個div標籤
driver.find_element_by_xpath('/html/body/div/div[2]')
driver.find_element(By.XPATH,"/html/body/div/div[2]")
# 層次屬性定位:定位input標籤中id='kw'的下的第一個input標籤
driver.find_element_by_xpath("//inpu[@id='kw']/input")
driver.find_element(By.XPATH,"//input[@id='kw']/input")
# 屬性模糊定位:定位input標籤下屬性id包含‘kw’值的元素
driver.find_element_by_xpath("//input[contains(@id,‘kw’)]")
driver.find_element(By.XPATH,"//input[contains(@id,‘kw’)]")
# 邏輯運算定位:定位id='su'且type='submit'的元素
driver.find_element_by_xpath("//*[@id='su' and  @type='submit']")
driver.find_element(By.XPATH,"//*[@id='su' and  @type='submit']")

css_selector 定位:

# 常用屬性定位(css用#表示id、用.表示class,標籤直接引用標籤名)
  # 定位id=kw的元素
driver.find_element_by_css_selector('#kw')
driver.find_element(By.CSS_SELECTOR,'#kw')
  # 定位class=s_ipt的元素
driver.find_element_by_css_selector('.s_ipt')
driver.find_element(By.CSS_SELECTOR,'.s_ipt')
  # 標籤絕對路徑定位
driver.find_element_by_css_selector('/html/body/div/div[2]')
driver.find_element(By.CSS_SELECTOR,'/html/body/div/div[2]')
# 其他屬性定位:
driver.find_element_by_css_selector("[type='submit']")
driver.find_element(By.CSS_SELECTOR,"[type='submit']")
# 標籤屬性組合定位:定位id='form'的form標籤下的span標籤下的name='wd'的input標籤
driver.find_element_by_css_selector("form#form>span>input[name='wd']")
driver.find_element(By.CSS_SELECTOR,"form#form>span>input[name='wd']")

定位一組元素:elements

# id定位
driver.find_elements_by_id('value')
driver.find_elements(By.ID,'value')
# name定位
driver.find_elements_by_name('value')
driver.find_elements(By.NAME,'value')
# class定位
driver.find_elements_by_class_name('value')
driver.find_elements(By.CLASS_NAME,'value')
# tag定位(使用標籤名定位)
driver.find_elements_by_tag_name("value")
driver.find_elements(By.TAG_NAME,'value')
# link定位(使用顯示文字定位)
driver.find_elements_by_link_text("value")
driver.find_elements(By.LINK_TEXT,'value')
# partial_link定位(使用超連結文字定位)
driver.find_elements_by_partial_link_text("value")
driver.find_elements(By.PARTIAL_LINK_TEXT,'value')
# xpath定位
driver.find_elements_by_xpath("value")
driver.find_elements(By.XPATH,'value')
# css_selector定位
driver.find_elements_by_css_selector("value")
driver.find_elements(By.CSS_SELECTOR,'value')

# 注:定位一組元素返回的是一個列表