Web元素定位方法_8大元素+xpath定位
2021-04-10 18:28
标签:element ref htm course nts index div 页面 follow 元素定位,顾名思义就是根据元素的特征,来确认元素的条件,然后根据条件去找到唯一的那个元素。 一、八大元素 1、只根据元素的一个属性来找元素(6大) 1)id、name、class_name(只支持一个class值)、tag_name 2)只针对a元素 link_text、partial_link_text 示例: 2、多个属性组合来找元素或者通过其它的关系来找元素(2大)- 1)绝对定位: 以/开头, 父/子 根据继承顺序、同级位置顺序一层一层的找,与在windows文件目录,需要一层一层的打开找到对应的文件(逐层打开)。 示例: /html/body/div[2]/div[3]/div/div/div[2]/div[3]/i[1] /*[@id="number-attend"]/div[2]/div[3]/i[1] //div[@id="number-attend"]//i[@class="ing 2)相对定位(Xpath定位):靠自己的特征来定位,自己唯一的标识,以//开头 二、Xpath定位 (在当前需定位的页面按F12下elements当中,按Ctrl +F,弹出表达式确认框) 1、根据元素的唯一属性(标识来定位) 表达式格式://标签名[@属性=值] 示例://i[@class="ing"] //*[@*="ing"] 2、文本匹配 表达式格式://标签名[text()=值] 示例://a[text()="公告"] 3、包含 表达式格式://标签名[contains(@属性/text(),值)] 示例://a[contains(@href,"/Notify/index/courseid/")] //a[contains(text(),"公告")] 4、辑运算 来组合更多的元素特征。 and or 表达式格式: 1)//标签名[@属性=值 and @属性=值 and contains(@属性/text(),值) and text()=值] 示例://a[text()="公告" and contains(@href,"/Notify/index/courseid/")] 5、层级定位://一级元素//二级元素//...... 示例://div[@id="number-attend"]//i[@class="ing"] 6、轴定位: 关系 - 分析元素之间的关系,页面的结构。 1)通过兄弟姐妹找到自己 2)通过后代元素来找到 祖先元素 轴运算: ancestor:祖先结点 包括父 parent:父结点 给g preceding: 当前元素节点标签之前的所有结点。(html页面先后顺序) preceding-sibling: 当前元素节点标签之前的所有兄弟结点 following: 当前元素节点标签之后的所有结点。(html页面先后顺序) following-sibling:当前元素节点标签之后的所有兄弟结点 使用语法: 已知的元素/轴名称::标签名称[@属性=值] 例://div//table//td//preceding::td //p[@title="余粮"]/preceding-sibling::p[@class="stuno"] //p[@title=”余粮"]/parent::*/following-sibling::li//p[@class="name"] Web元素定位方法_8大元素+xpath定位 标签:element ref htm course nts index div 页面 follow 原文地址:https://www.cnblogs.com/forayepy/p/12425635.html 1 # class - 只能是class属性当中的一个值
2 driver.find_element_by_class_name("s_ipt") # 1个元素 - 匹配到的第1个元素
3 driver.find_elements_by_class_name("s_ipt") # 所有匹配多个元素 - 列表
4
5 # name
6 driver.find_element_by_name("wd")
7 driver.find_elements_by_name("wd")
8 #
9 # tag
10 driver.find_element_by_tag_name("input")
11 driver.find_elements_by_tag_name("input")
12 #
13 # link_text
14 driver.find_element_by_link_text("地图")
15 driver.find_elements_by_link_text("地图")
16 #
17 # # partial_link_text
18 driver.find_element_by_partial_link_text("hao")
19 driver.find_elements_by_partial_link_text("hao")
2)//标签名[@属性=值 or @属性=值]1 # 直接写By,按Alt+Enter进行导入即可
2 from selenium.webdriver.common.by import By
3 element = driver.find_element(By.XPATH,‘//p[@title="余粮"]/preceding-sibling::p[@class="stuno"]‘)
4 element_list = driver.find_elements(By.XPATH,‘//p[@title="余粮"]/preceding-sibling::p[@class="stuno"]‘)
上一篇:yii 返回json数据
下一篇:[FAQ] web3js, Error: Please pass numbers as strings or BN objects to avoid precision errors.
文章标题:Web元素定位方法_8大元素+xpath定位
文章链接:http://soscw.com/index.php/essay/73914.html