selenium3.14.1版本 元素定位

1.selenium中使用什么方法进行元素定位

①单个元素定位:find_element

②多个元素定位:find_elements

2.selenium中的定位方式

#先selenium导包

from selenium import webdriver
#以谷歌浏览器的百度网页为例
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")

#id定位
date=driver.find_element_by_id('kw')
print(date.get_attribute('outerHTML'))# 打印定位的元素

#name定位
date=driver.find_element_by_name('wd')
print(date.get_attribute('outerHTML'))

#class定位
date=driver.find_element_by_class_name('s_ipt')
print(date.get_attribute('outerHTML'))

#tag_name 定位
date=driver.find_elements_by_tag_name('a')
print(date.get_attribute('outerHTML')) #返回一个列表


#超链接定位
date=driver.find_elements_by_link_text('图片')
print(date.get_attribute('outerHTML'))

2.1 xpath定位

语法:find_element_by_xpath()

①.基本语法
    //标签名[@属性名=属性值]
②.父子层级
    //标签名[@属性名=属性值]/子标签名    //标签名[@属性名=属性值]//子标签名
③.索引
    //标签名[@属性名=属性值]/子标签名[索引]   注意:索引从1开始
④.模糊匹配
    //标签名[contains(@属性名,部分属性值)]
⑤.多条件匹配
    //标签名[@属性1=属性值1 and @属性2=属性值2]

# xpath 语法  find_element_by_xpath()

#标签+属性定位  //标签名[@属性名=属性值]
date=driver.find_element_by_xpath("//input[@id='kw']")

# 层级标签 //标签名[@属性名=属性值]/子标签 --->只会选该标签名下的子标签  ;  //标签名[@属性名=属性值]//子标签--->会选该标签名下的子标签以及子标签下的标签
date=driver.find_element_by_xpath('//span[@class="bg s_btn_wr"]/input')

# 索引定位 //标签名[属性名=属性值]/子标签[索引]   索引从1开始
 date=driver.find_element_by_xpath('//div[@id="s-top-left"]/a[2]')

# 模糊定位 //标签名[contains(@属性名,部分属性值)]
 date=driver.find_element_by_xpath('//div[@id="s-top-left"]/a[contains(@target,"_blan")]')

# 多条件查找 //标签名[属性名1=属性值1 and 属性名2=属性值2]
date=driver.find_element_by_xpath('//div[@id="s-top-left"]/a[contains(@target,"_blan")]')


print(date.get_attribute('outerHTML'))

2.2css定位

语法:find_element_by_css_selector()

①.基本语法
    标签名[属性名=属性值]    #id名  .class名
②.父子层级
    标签名[属性名=属性值] 子标签        标签名[属性名=属性值]>子标签
③.索引
    标签名[属性名=属性值] :nth-child(索引)   标签名[属性名=属性值]>:nth-child(索引)
④.模糊匹配
    标签名[属性名*=部分属性值]
⑤.多条件匹配
    标签名[属性名1=属性值1][属性名2=属性值2]

#css 语法  find_element_by_css_selector()

#标签+属性定位
ele=driver.find_element_by_css_selector('input[id="kw"]')

#id 选择器定位 #id属性值 --->没有引号
ele=driver.find_element_by_css_selector('#kw')

# class 选择器定位  .class属性值---->没有引号
ele=driver.find_element_by_css_selector('.s_ipt')

# 层级定位
ele=driver.find_element_by_css_selector('form[name="f"] input[id="kw"]')

# 索引定位
ele = driver.find_element_by_css_selector('form[name="f"] :nth-child(8) input')

#模糊匹配
ele = driver.find_element_by_css_selector('input[type*="sub"]')

# 多条件查找
ele=driver.find_element_by_css_selector('span[class="soutu-hover-tip"][style="display: none;"]')

print(ele.get_attribute('outerHTML'))
driver.quit()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值