一、八种元素定位方法

摘要:
目录1.id位置2.name位置3.class _ name Location4.tag _ name Positioning 5.link _ TextPositioning 6.partial_ link_ TextLocation7.xpath Location8.css _选择器定位9.按类别定位方法1.id通过查找

目录

<!--百度首页输入框的HTML代码-->
<input     autocomplete="off" maxlength="255" value="" name="wd">

1. id定位

通过find_element_by_id()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

driver.get('https://www.baidu.com/')
time.sleep(2)
# 通过id定位到百度搜索框
driver.find_element_by_id("kw").send_keys("selenium")
time.sleep(2)
driver.find_element_by_id("kw").clear()

driver.quit()

2. name定位

通过find_element_by_name()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过name定位百度搜索框
driver.find_element_by_name("wd").send_keys("自动化")
time.sleep(2)
driver.find_element_by_name("wd").clear()

driver.quit()

3. class_name定位

通过find_element_by_class_name()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过class_name定位百度搜索框
driver.find_element_by_class_name("s_ipt").send_keys("测试")
time.sleep(2)
driver.find_element_by_class_name("s_ipt").clear()


driver.quit()

4. tag_name定位

通过find_element_by_tag_name()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过tag_name定位百度搜索框, elements表示找到符合条件的所有元素,并存在一个列表中
ele = driver.find_elements_by_tag_name("input")
# 从定位到的标签名为"input"的元素中找到百度搜索框对应的元素
for i in ele:
    if i.get_attribute('id') == "kw":
        i.send_keys("学习")
        time.sleep(2)
        i.clear()

driver.quit()

5. link_text定位

通过find_element_by_link_text()来进行定位,可以定位页面中的超链接元素

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过link_text定位贴吧
driver.find_element_by_link_text("贴吧").click()
time.sleep(2)

driver.quit()

6. partial_link_text定位

通过find_element_by_partial_link_text()来进行定位,可以定位页面中的超链接元素,模糊定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过partial_link_text定位百度首页
driver.find_element_by_partial_link_text("首页").click()
time.sleep(2)

driver.quit()

7. xpath定位

通过find_element_by_xpath()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

time.sleep(2)
# 通过xpath的绝对路径定位百度搜索框
driver.find_element_by_xpath("/html/body/div[1]/div[1]/div/div[1]/div/form/span[1]/input").send_keys("绝对路径")
time.sleep(2)
driver.find_element_by_xpath("s_ipt").clear()

time.sleep(2)
# 通过xpath的相对路径定位百度搜索框
driver.find_element_by_xpath("//*[@id='kw']").send_keys("相对路径")
time.sleep(2)
driver.find_element_by_xpath("s_ipt").clear()

time.sleep(2)
# 通过xpath的相对路径的模糊定位定位百度搜索框
driver.find_element_by_xpath("//*[contains(@class, 'ipt']").send_keys("相对路径_模糊定位")
time.sleep(2)
driver.find_element_by_xpath("s_ipt").clear()

driver.quit()

8. css_selector定位

通过find_element_by_css_selector()来进行定位

import time
from selenium import webdriver

driver = webdriver.Firefox()
driver.maximize_window()
driver.implicitly_wait(30)

driver.get("https://www.baidu.com")

time.sleep(2)
# 通过css_selector的class定位百度搜索框
driver.find_element_by_css_selector(".s_ipt").send_keys("css")
time.sleep(2)
driver.find_element_by_css_selector(".s_ipt").clear()

time.sleep(2)
# 通过css_selector的id定位百度搜索框
driver.find_element_by_css_selector("#kw").send_keys("selector")
time.sleep(2)
driver.find_element_by_css_selector("#kw").clear()

time.sleep(2)
# 通过css_selector的属性定位百度搜索框
driver.find_element_by_css_selector("[name='wd']").send_keys("属性")
time.sleep(2)
driver.find_element_by_css_selector("[name='wd']").clear()

time.sleep(2)
# 通过css_selector的层级定位百度搜索框
driver.find_element_by_css_selector("span > input").send_keys("层级")
time.sleep(2)
driver.find_element_by_css_selector("span > input").clear()

driver.quit()

注意:使用element定位到的都是单个元素;而使用elements定位到的是多个元素,存放在一个列表中。

# 对应的八种查找多个元素的方法:
find_elements_by_id
find_elements_by_name
find_elements_by_class_name
find_elements_by_tag_name
find_elements_by_link_text
find_elements_by_partial_link_text
find_elements_by_xpath
find_elements_by_css_selector

9. By类定位方法

'''
通过导入By类,from selenium.webdriver.common.by import By
可以用find_element(by=By.ID, value=None)代表find_element_by...方法
可以用find_elements(by=By.ID, value=None)代表find_elements_by...方法
'''
from selenium.webdriver.common.by import By
By.ID
By.NAME
By.CLASS_NAME
By.TAG_NAME
By.LINK_TEXT
By.PARTIAL_LINK_TEXT
By.XPATH
By.CSS_SELECTOR

免责声明:文章转载自《一、八种元素定位方法》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇LVS管理工具--ipvsadmSystem.nanoTime()的使用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

学习笔记(爬虫):爬取笔趣阁剑来小说

1、目的 爬取笔趣阁网站的剑来小说正文内容,并保存到本地中。 2、实现方案 首先,请求目标网站的网页数据,通过分析找出章节地址的特点,并通过xpath获取到章节链接; 其次,请求每一章节的内容,通过数据清洗去除脏数据,得到剑来文章正文; 最后,保存数据到本地。 3、程序设计 3.1 请求数据模块 请求模块,负责请求网站数据,主要使用requests的g...

通过S3接口访问ceph

1. 找出对应bucket的owner # radosgw-admin bucket list # radosgw-admin metadata list user # radosgw-admin bucket stats --bucket=chaoge_73_test { "bucket": "chaoge_73_test", "p...

python selenium 基本常用操作

 最近学习UI自动化,把一些常用的方法总结一下,方便自己以后查阅需要。因本人水平有限,有不对之处多多包涵!欢迎指正! 一、xpath模糊匹配定位元素 武林至尊,宝刀屠龙刀(xpath),倚天不出(css),谁与争锋  学会了xpath,妈妈再也不用担心我定位不到元素啦 ^_^ # coding:utf-8 import time from seleniu...

selenium之元素定位-xpath

被测试网页的HTML代码 <html> <body> <div id="div1" style="text-align:center"> <img alt="div1-img1" src="http://www.sogou.com/i...

Selenium-ActionChainsApi--鼠标连贯操作

ActionChains UI自动化测试过程中,经常遇到那种,需要鼠标悬浮后,要操作的元素才会出现的这种场景,那么我们就要模拟鼠标悬浮到某一个位置,做一系列的连贯操作,Selenium给我们提供了ActionChains模块。 引入方式 from selenium.webdriver.common.action_chains import ActionCh...

xpath和css selector的使用方法

什么是Xpath? XPath是XML的路径语言,通俗一点讲就是通过元素的路径来查找到这个标签元素 Xpath的练习建议安装火狐浏览器后,下载插件,FireBug和FirePath,谷歌浏览器可以下载ChroPath插件,进行定位,切换到XPath,默认死格式 先写//*代表定位页面下所有元素,[@id='kw'],尽量不要用xpath来定位,因为xpa...