selenium8种定位方法详解,讲义。(python)

前些日子做公开课的,写了点儿selenium定位相关的内容,发出来给大家看看。只是简单地定位,并不是很复杂。

#__author__ = 'chubby_superman'
#_*_coding=utf-8 _*_

from selenium import webdriver
driver=webdriver.Firefox()
driver.get("https://baidu.com")

#8种定位方法

'html片段1: <input autocomplete="off" maxlength="255" value="" class="s_ipt" name="wd" id="kw">'
'''
标签名:input
id="kw"
class="s_ipt"
name="wd"
主要是8种定位方法的第1到4种
'''


'html片段2: <a class="mnav" name="tj_trnews" href="http://news.baidu.com">新闻</a>'
'''
主要是8种定位方法的第5、6种
'''

'html3  详见附件1'
'''
主要是8种定位方法的第7、8种
'''
#1、id属性定位
element_id = driver.find_element_by_id("kw")

#2、 name属性定位
element_name = driver.find_element_by_name("wd")

#3、class属性定位
element_classname = driver.find_element_by_class_name("s_ipt")

#4、tag name标签名称定位
element_tagname = driver.find_element_by_tag_name("input")

#5、link text通过超链接的完整文本定位
element_linktext = driver.find_element_by_link_text("学术")

#6、partial link text通过超链接的部分文本定位
element_partial_linktext = driver.find_element_by_partial_link_text("百度")

#7、xpath 通过xpath定位
    #XPath 是一门在 XML 文档中查找信息的语言。XPath 用于在 XML 文档中通过元素和属性进行导航。
element_xpath_j = driver.find_element_by_xpath('/html/body/div[1]')
'''
xpath有两种写法,一种是绝对路径,一种是相对路径,上面使用的是绝对路径。下面我们使用相对路径定位元素
'''
element_xpath_x = driver.find_element_by_xpath('//*[@id="ftConw"]')
    #//*[@id="ftConw"]    //*选取文档中的所有元素,[@id="ftConw"]匹配属性为id="ftConw"的元素
    #有兴趣的可以去 http://www.w3school.com.cn/xpath/xpath_functions.asp 学习相关的写法
#8、css selector
element_selector = driver.find_element_by_css_selector()
#
#css定位比xpath定位要快,通常在使用xpath定位不到的时候,我们使用css。
#html body div#home div#main div#mainContent div.forFlow div#post_detail div#topics div.post div.postBody div#cnblogs_post_body.blogpost-body table tbody tr td
#以上是完整路径,通常我们使用相对路径。
'''
注意  driver.find_element_by中  element,结尾没有s,是element的单数形式;如果,是elements,则为element的复数
形式,那么,通过driver.find_elements_by 定位的元素,返回的将是一个列表,该列表由多个元素组成
'''
elements = driver.find_elements_by_partial_link_text("百")
print(elements)
print(type(elements))
print(len(elements))

以后如果有机会,我会将浏览器操作,cookie,显式等待隐式等待脚本休眠等等加上。这里就不发了(因为我还没讲到那里)。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值