Python+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')

# 注:定位一组元素返回的是一个列表

参考:https://blog.csdn.net/qq_32897143/article/details/80383502

猜你喜欢

转载自blog.csdn.net/weixin_43507959/article/details/83352413