石家庄英文网站建设,长沙网络公关公司,wordpress导航改哪个php文件夹,网站推广的途径和推广要点元素定位
元素定位就是通过元素的信息或者元素层级结构来定位元素。当定位到了重复的属性#xff0c;默认会定位到第一个标签。
id定位 - find_element_by_id
同一个html页面中id值是唯一的。
模拟在百度输入框中输入想要查找的内容 python
代码解读
复制代码
from sel…元素定位
元素定位就是通过元素的信息或者元素层级结构来定位元素。当定位到了重复的属性默认会定位到第一个标签。
id定位 - find_element_by_id
同一个html页面中id值是唯一的。
模拟在百度输入框中输入想要查找的内容 python
代码解读
复制代码
from selenium import webdriver import time driver webdriver.Chrome() driver.get(http://www.baidu.com) inp driver.find_element_by_id(kw) # 通过id定位元素 - 定位到输入框 inp.send_keys(蜡笔小新) # 针对输入框进行输入操作 time.sleep(2) driver.quit()
name定位-find_element_by_name
通过元素的name属性值进行元素定位该属性是可以重复的。 arduino
代码解读
复制代码
find_element_by_name # name属性
classname定位-find_element_by_class_name
通过元素的class属性进行元素定位参数是其中一个属性值不能使用所有属性值进行定位 bash
代码解读
复制代码
find_element_by_class_name # 类名
tag_name定位
通过元素的标签名称进行定位同一个html页面中相同元素有很多。 bash
代码解读
复制代码
find_element_by_tag_name # 通过标签名
link_text定位-find_element_by_link_text
通过超链接的全部文本信息进行定位。 ini
代码解读
复制代码
from selenium import webdriver import time driver webdriver.Chrome() driver.get(https://www.baidu.com) res driver.find_element_by_link_text(新闻) # 通过a标签定位元素重复的话默认定位第一个 res.click() # 点击操作 time.sleep(2) driver.quit()
partical_link_text定位 - find_element_by_partical_link_text
通过超链接的局部文本信息进行定位。也就是进行模糊匹配 arduino
代码解读
复制代码
driver.find_element_by_partical_link_text(新闻)
定位一组元素 - find_elements_by_xxx
可以解决定位到多个元素如何获取所有的重复的元素。注意多了一个s哦~
定位一组元素返回的值是一个列表即可以通过索引进行获取指定的元素。 ini
代码解读
复制代码
from selenium import webdriver import time driver webdriver.Chrome() driver.get(https://www.baidu.com) res driver.find_elements_by_tag_name(a) # 通过a标签定位元素结果是一个列表 print(res[0]) time.sleep(2) driver.quit()
xpath元素定位
XPath是XML Path的简称是一门在XML文档中查找元素信息的语言xpath可以使用工具生成。 python
代码解读
复制代码
from selenium import webdriver import time driver webdriver.Chrome() driver.get(https://cn.bing.com/) res driver.find_element_by_xpath(//*[idsb_form_q]) # 通过a标签定位元素结果是一个列表 res.send_keys(蜡笔小新) # 获取标签的文本内容 id time.sleep(2) driver.quit()
Xpath定位策略find_element_by_xpath(xpath表达式)
最常用的定位方式
路径定位
绝对路径表达式以/html开头元素的层级之间以/分隔相同层级的元素可以使用索引索引从1开始找到元素需要经过所有的层级元素比如/html/body/div/form/p[1]/input
相对路径匹配任意层级的元素以//tag_name或者//*开头,*表示所有的标签
属性定位最好能够通过属性定位到唯一的元素
xpath表达式//*[属性名属性值]
比如//input[value取消]
属性与逻辑结合同时满足多个条件
xpath表达式//tag_name[属性名属性值 and 属性名属性值]
属性与层级结合
xpath表达式//tag_name[属性名属性值]/tag_name[属性名属性值]
通过全部文本内容进行定位
xpath表达式//*[test()文本内容]
元素的某个属性值包含value
xpath表达式//*[contains(属性名,属性值的一部分)]
css定位
介绍
使用的方法是find_element_by_css_selector(css选择器表达式)
一般不常用可能不能精确定位。多种属性可以组合使用
id选择器
表达式#id表示#id值 ini
代码解读
复制代码
driver webdriver.Chrome() driver.get(https://cn.bing.com/) res driver.find_element_by_css_selector(#sb_form_q)
class选择器
表达式.class表示.其中一个属性值
元素选择器 - 不推荐使用
表达式tagname
会定位到多个因此不推荐使用
属性选择器
表达式[属性名属性值]
层级选择器
后代选择器 - 空格表示后代选择器 css
代码解读
复制代码
div span - 表示div内部的span标签
儿子选择器 - 表示儿子关系内部第一层 css
代码解读
复制代码
div span - 表示div内部第一层的span标签
毗邻选择器 - 表示毗邻关系毗邻关系同级别紧挨着的下一个标签 css
代码解读
复制代码
div span - 表示紧挨着div的同级别的span标签
弟弟选择器 - ~表示弟弟关系弟弟关系同级别的所有标签 css
代码解读
复制代码
div ~ span - 表示和div同级别的span标签
元素定位的另一种写法 ini
代码解读
复制代码
from selenium.webdriver.common.by import By res driver.find_element(byBy.CSS_SELECTOR, value#sb_form_q) res driver.find_element(By.XPATH, #sb_form_q) res driver.find_element(By.ID, #sb_form_q) res driver.find_element(By.CLASS_NAME, #sb_form_q) res driver.find_element(By.NAME, #sb_form_q) res driver.find_element(By.TAG_NAME, #sb_form_q) res driver.find_element(By.LINK_TEXT, #sb_form_q)
案例 python
代码解读
复制代码
from selenium import webdriver from selenium.webdriver.common.by import By import time driver webdriver.Chrome() driver.get(https://cn.bing.com/) res driver.find_element(By.CSS_SELECTOR, #sb_form_q) # 通过a标签定位元素结果是一个列表 res.send_keys(蜡笔小新) # 获取标签的文本内容 id time.sleep(2) driver.quit() 这是我整理的《2024最新Python自动化测试全套教程》以及配套的接口文档/项目实战【网盘资源】需要的朋友可以下方视频的置顶评论获取。肯定会给你带来帮助和方向。 【已更新】B站讲的最详细的Python接口自动化测试实战教程全集实战最新版