二、selenium元素定位
阿新 • • 發佈:2018-12-19
定位單元素: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')
# 注:定位一組元素返回的是一個列表