定位单元素: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