Selenium八种元素定位方法

1、id定位:find_element_by_id()

通过id属性定位,下列代码通过搜索框的id属性kw和搜索按钮id属性su来定位。

from selenium import webdriver

driver = webdriver.Chrome("D:\\chromedriver.exe")
driver.implicitly_wait(10)

driver.get("http://www.baidu.com")
driver.find_element_by_id("kw").send_keys("selenuim")
driver.find_element_by_id("su").click()

driver.quit()

2、name定位: find_element_by_name()

通过name属性定位,下列代码通过搜索框的name属性wd来定位。

from selenium import webdriver

driver = webdriver.Chrome("D:\\chromedriver.exe")
driver.implicitly_wait(10)

driver.get("http://www.baidu.com")
driver.find_element_by_name("wd").send_keys("selenuim")

driver.quit()

3,class定位:find_element_by_class_name()

通过class属性定位,下列代码通过搜索框的class属性s_ipt和搜索按钮class属性btn self-btn bg s_btn来定位。

from selenium import webdriver

driver = webdriver.Chrome("D:\\chromedriver.exe")
driver.implicitly_wait(10)

driver.get("http://www.baidu.com")
driver.find_element_by_class_name("s_ipt").send_keys("selenuim")
driver.find_element_by_class_name("btn self-btn bg s_btn").click()

driver.quit()

4、tag定位:find_element_by_tag_name()

每个元素其实就是一个tag,一个tag往往用来定义一类功能。像input、div这种都是tag,由于页面上这样的元素太多,tag难以区分。不建议使用

5、link定位:find_element_by_link_text()

通过超链接上的文本来定位元素,比如百度首页右上角有“新闻”,“hao123”,“地图”等链接

from selenium import webdriver

driver = webdriver.Chrome("D:\\chromedriver.exe")
driver.implicitly_wait(10)

driver.get("http://www.baidu.com")
# 通过link定位"新闻"这个链接并点击
driver.find_element_by_link_text('新闻').click()
# 等待5秒
sleep(5)
# 退出
driver.quit()

6、partial_link定位:find_element_by_partial_link_text()

超链接上的关键字匹配,相当于模糊匹配

from selenium import webdriver

driver = webdriver.Chrome("D:\\chromedriver.exe")
driver.implicitly_wait(10)

driver.get("http://www.baidu.com")
driver.find_element_by_partial_link_text('闻').click()
# 等待5秒
sleep(5)
# 退出
driver.quit()

7、xpath定位:find_element_by_xpath()

xpath可定位到页面上的任意元素
查找页面根元素://
查找页面上所有的input元素://input
查找页面上第一个form元素内的直接子input元素(即只包括form元素的下一级input元素)://form/input
查找页面上第一个form元素://form
查找页面上id为loginForm的form元素://form[@id='loginForm']
查找页面上具有name属性为username的input元素://input[@name='username']
查找页面上id为loginForm的form元素下的第一个input元素://form[@id='loginForm']/input[1]
查找页面具有name属性为contiune并且type属性为button的input元素://input[@name='continue'][@type='button']
查找页面上id为loginForm的form元素下第4个input元素://form[@id='loginForm']/input[4]
以百度主页为例,搜索框的HTML示例代码如下,其xpath为//*[@id=''kw]

from selenium import webdriver

driver = webdriver.Chrome("D:\\chromedriver.exe")
driver.implicitly_wait(10)

driver.get("http://www.baidu.com")
ele = driver.find_element_by_xpath("//*[@id='kw']").send_keys('selenuim')
driver.find_element_by_xpath("//*[@id='su']").click()

driver.quit()

8、CSS定位:find_element_by_css_selector()

css比xpath更简洁些,速度更快

from selenium import webdriver

driver = webdriver.Chrome("D:\\chromedriver.exe")
driver.implicitly_wait(10)

driver.get("http://www.baidu.com")
ele = driver.find_element_by_css_selector('#kw').send_keys('selenuim')
driver.find_element_by_css_selector("#su").click()

driver.quit()
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值