python+selenium自动化(四)__八大元素定位之class_name、tag_name、partial_link_text、css_selector

selenium八大元素定位(二)

上节讲了4种定位ID、NAME、LINK_TEXT、XPATH,这节继续学习剩下的4种元素定位方式

1.通过class_name定位

我们需定位上图中的"百度热榜",可以看到它的class="title-text c-font-medium c-color-t"这其中class_name有3个,分别是title-text、c-font-medium、c-color-t(不是唯一)并通过空格连接在一起,下面我们来试着定位它

#定位"百度热榜"
import time
from selenium import webdriver        #从selenium中导入webdriver
driver = webdriver.Chrome()           #创建chrome浏览器的驱动实例对象
driver.get('http://www.baidu.com')    #调用"驱动对象"的get方法来控制浏览器打开指定网页
driver.find_element_by_class_name("title-text").click()    #通过class_name定位百度热榜并点击
#driver.find_element_by_class_name("c-font-medium").click()
time.sleep(5)    #强制等待5S
driver.quit()    #退出浏览器

2.通过tag_name定位

tag_name定位方式使用较少,因为同一个标签会重复多次,导致不易定位

#定位输入框input
import time
from selenium import webdriver        #从selenium中导入webdriver
driver = webdriver.Chrome()           #创建chrome浏览器的驱动实例对象
driver.get('http://www.baidu.com')    #调用"驱动对象"的get方法来控制浏览器打开指定网页
A = driver.find_elements_by_tag_name("input").click()    #通过tag_name定位input标签
print(A)
'''
输入结果会返回一个列表:
[<selenium.webdriver.remote.webelement.WebElement (session="38a737d81faf9d7dcdce46d9d8f1f95c", element="0.15422789531245007-1")>, 
<selenium.webdriver.remote.webelement.WebElement (session="38a737d81faf9d7dcdce46d9d8f1f95c", element="0.15422789531245007-2")>, 
<selenium.webdriver.remote.webelement.WebElement (session="38a737d81faf9d7dcdce46d9d8f1f95c", element="0.15422789531245007-3")>...]
'''
time.sleep(5)    #强制等待5S
driver.quit()    #退出浏览器

3.通过partial_link_text定位

用于文本链接的定位,可根据链接的部分名称进行定位。我们定位百度首页的贴吧,代码如下

#定位贴吧
import time
from selenium import webdriver        #从selenium中导入webdriver
driver = webdriver.Chrome()           #创建chrome浏览器的驱动实例对象
driver.get('http://www.baidu.com')    #调用"驱动对象"的get方法来控制浏览器打开指定网页
driver.find_element_by_partial_link_text("贴吧").click()    #定位贴吧并跳转
time.sleep(5)    #强制等待5S
driver.quit()    #退出浏览器

4.通过css_selector定位

css_selector的定位方式在selenium中用得较少。在css_selector中常用符号数码:  # 表示id  . 表示class  > 表示子元素,层级,一个空格也表示一个子元素,但是所有的子元素相当于xpath中的相对路径,例:driver.find_element_by_xpath(’//div//inptut’),可以写成driver.find_element_by_css_selector(‘div input’)

import time
from selenium import webdriver        #从selenium中导入webdriver
driver = webdriver.Chrome()           #创建chrome浏览器的驱动实例对象
driver.get('http://www.baidu.com')    #调用"驱动对象"的get方法来控制浏览器打开指定网页
#①.title-text 表示选择class为title-text的节点
driver.find_element_by_css_selector(".title-text").click()    #定位热榜并跳转
#②#kw 选择id为kw的节点
driver.find_element_by_css_selecotr("#kw").send_keys("Python")    #定位输入框并传值
#③div#radio>input  选择id为radio的div下的所有的input节点
#④div#radio input  选择id为radio的div下的所有的子孙后代input节点
time.sleep(5)    #强制等待5S
driver.quit()    #退出浏览器

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值