-
2022-02-22 15:14:46
八种定位方式:id,name,class name,tag name,link text,partial link text,xpath,css selector。其中id,name,class name,tag name是根据元素的标签或元素的属性来进行定位;link text,partial link text是根据超链接的文本来进行定位;xpath为元素路径定位;css为选择器定位(样式定位)。
1:id定位
说明:id定位就是通过元素的id属性来定位元素;
前提:元素有id属性
id定位方法:find_element_by_id()
示例:打开百度搜索页面,通过id定位,输入搜索关键字from selenium import webdriver import time # 打开chrome浏览器 driver = webdriver.Chrome() # 打开百度搜索页面 driver.get('https://www.baidu.com') # 通过id定位 driver.find_element_by_id('kw').send_keys('python') # 强制等待2秒查看效果 time.sleep(2) # 关闭浏览器 driver.quit()
2:name定位
说明:HTML规定name属性来指定元素名称,name的属性值在当前文档中可以不是唯一的,name定位就是根据name属性来定位。
前提:元素有name属性
name定位方法:find_element_by_name()
示例:打开百度搜索页面,通过name定位,输入搜索关键字from selenium import webdriver import time # 打开chrome浏览器 driver = webdriver.Chrome() # 打开百度搜索页面 driver.get('https://www.baidu.com') # 通过name定位 driver.find_element_by_name('wd').send_keys('python') # 强制等待2秒查看效果 time.sleep(2) # 关闭浏览器 driver.quit()
3:class_name定位
说明:HTML规定class来指定元素的类名,class定位就是根据class属性来定位。
前提:元素有class属性
class_name定位方法:find_element_by_class_name()
示例:打开百度搜索页面,通过class_name定位,输入搜索关键字from selenium import webdriver import time # 打开chrome浏览器 driver = webdriver.Chrome() # 打开百度搜索页面 driver.get('https://www.baidu.com') # 通过class_name定位 driver.find_element_by_class_name('s_ipt').send_keys('python') # 强制等待2秒查看效果 time.sleep(2) # 关闭浏览器 driver.quit()
4:tag_name定位
说明:HTML本质就是由不同的tag(标签)组成,而每个tag都是指同一类,所以tag定位效率低,一般不建议使用;tag_name定位就是通过标签名来定位。
tag_name定位方法:find_element_by_tag_name()5:link_text定位
说明:link_text定位与前面4个定位有所不同,它专门用来定位超链接文本(文本值)
前提:定位的元素是链接标签(a标签)
link_text定位方法:find_element_by_link_text()
示例:打开百度首页,通过link_text定位到hao123按钮,并进行点击操作from selenium import webdriver import time # 打开chrome浏览器 driver = webdriver.Chrome() # 打开百度搜索页面 driver.get('https://www.baidu.com') # 通过link_text定位 driver.find_element_by_link_text('hao123').click() # 强制等待2秒查看效果 time.sleep(2) # 关闭浏览器 driver.quit()
6:partial_link_text定位
说明:partial_link_text定位是对link_text定位的补充,partial_link_text为模糊匹配;link_text为精确匹配。
前提:定位的元素是链接标签(a标签)
partial_link_text定位方法:find_element_by_partial_link_text()
通过传入a标签局部文本或全部文本来定位元素,要求输入的文本能够唯一找到这个元素
示例:打开百度首页,通过partial_link_text定位到新闻,并进行点击操作from selenium import webdriver import time # 打开chrome浏览器 driver = webdriver.Chrome() # 打开百度搜索页面 driver.get('https://www.baidu.com') # 通过partial_link_text定位 driver.find_element_by_partial_link_text('新').click() # 强制等待2秒查看效果 time.sleep(2) # 关闭浏览器 driver.quit()
7:xpath定位
xpath概述:
1、xpath即为xml path的简称,它是一种用来确定XML文档中某部分位置的语言。
2、HTML可以看做是XML的一种实现,所以selenium用户可以使用这种强大的语言在web应用中来定位元素。
3、xpath为强大的语言,是因为它有非常灵活的定位策略。
xpath定位策略(方式):
1、路径定位–绝对路径、相对路径;
2、利用元素属性定位;
3、层级与属性结合定位;
4、属性与逻辑定位结合。
xpath定位方法:find_element_by_xpath()8:css定位
css概述:
1、css(Cascading Style Sheets)是一种语言,它用来描述HTML和XML的元素显示样式。
2、css语言中有css选择器,在selenium中也可以使用这种选择器来进行元素定位。
3、css定位方式比xpath快,而且css的语法也非常强大,所以非常推荐这种方式定位。
css定位策略(方式):
1、id选择器
2、class选择器
3、元素选择器
4、属性选择器
5、层级选择器
css定位方法:find_element_by_css_selector()更多相关内容 -
(三)简单自动化python+selenium 定位元素方法
2021-11-10 20:38:53from selenium import webdriver #导入selenium包 driver =webdriver.Chrome() #调用Chrome驱动 driver.get('http://www.baidu.com') #打开网址 driver.quit #关闭浏览器 昨天,因为有点事托更了,今天赶紧把...奋斗吧!少年
from selenium import webdriver #导入selenium包 driver =webdriver.Chrome() #调用Chrome驱动 driver.get('http://www.baidu.com') #打开网址 driver.quit #关闭浏览器
昨天,因为有点事托更了,今天赶紧把昨天想分享的写下来,这是我们之前学习的使用Selenium的方法,我们已经成功打开浏览器了,怎么样才能自动点击那些元素那。
我这里使用的是谷歌自带的F12功能进行寻找页面元素的
点击这个小箭头指向对应的元素,下面就会给出它具体的位置,这也是谷歌的强大之处。
定位的话,我们一般还是使用id、name、class、link、xpath这些元素比较多的。
id的属性,是不可重复的可以放心使用,name、class这些元素有时候会重复,这时候,我们就会用到xpath来进行定位。
我们可以直接右键选择Copy--xpath来进行定位,也是比较方便的,随之也有坏处的,因为它定位的是从页面第一级来进行查看的,所有比较多的情况下,会有点慢的。
元素定位到之后,我们可以使用
find_element(By.id,'元素')
find_element(By.name,'元素')
find_element(By.class_name,'元素')
find_element(By.link,'元素')
find_element(By.xpath,'元素')
这些方法来进行操作,具体看下面代码示例
定位到元素之后,会随之出现点击、输入文本等操作方式。
我们可以使用的是点击click()
输入文本的方式是send_keys('对应的输入值')
下面看代码示例:
#coding=utf8 from selenium import webdriver from selenium.webdriver.common.by import By #打开浏览器 driver=webdriver.Chrome() #打开百度 driver.get('http://www.baidu.com') #输入框 输入selenium driver.find_element(By.ID,'kw').send_keys('selenium') #点击搜索按钮 driver.find_element(By.ID,'su').click() #关闭浏览器 driver.quit()
现在我们已经可以完成Python+selenium的基本操作了,还是要多多练习,下面我们会陆续学习,下拉框选择,窗口切换,滑动页面,页面最大化等操作!!!
-
Selenium 定位元素的8种方法介绍
2020-12-03 21:13:12简介我们在做web自动化测试时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素。...开发者工具,就可以看到整个页面的html代码了二、方法介绍1.id定位: find_element_by_id...简介
我们在做web自动化测试时,最根本的就是操作页面上的元素,首先我们要能找到这些元素,然后才能操作这些元素。工具或代码无法像我们测试人员一样用肉眼来分辨页面上的元素。所以我们依据元素来定位它们。
一、查看页面元素
用谷歌浏览器打开百度首页(按键F12),或者点击右上角>更多工具>开发者工具,就可以看到整个页面的html代码了
二、方法介绍
1.id定位: find_element_by_id()
from selenium import webdriver
import time
driver = webdriver.Chrome()
#Windows窗口最大化
driver.maximize_window()
driver.get("https://www.baidu.com/")
driver.find_element_by_id("kw").send_keys("python")
2.name定位: find_element_by_name()
driver.find_element_by_name("wd").send_keys("python")
3.class定位:find_element_by_class_name()
driver.find_element_by_class_name('s_ipt').send_keys("python")
4.tag定位:find_element_by_tag_name()
driver.find_element_by_tag_name('body').get_attribute("class")
5.link定位:find_element_by_link_text()
driver.find_element_by_link_text('地图').click()
6.partial_link定位:find_element_by_partial_link_text()
driver.find_element_by_partial_link_text('hao1').click()
7.xpath定位:find_element_by_xpath()
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("python")
8.CSS定位:find_element_by_css_selector()
driver.find_element_by_css_selector('#kw').send_keys("python")
定位方法选择
1.选择简单,稳定的定位方法。
2..常用的方法是定位 id, name, class_name, xpath,css_selector 。
3.当页面元素有 id属性的时候,尽量使用 id来定位。没有的话,再选择其他定位方法(实测id元素也不唯一)。
4.css_selector 执行速度快,推荐使用。
5.定位超链接的时候,可以考虑 linkText或 partialLinkText:但是要注意的是,文本经常发生改变,所以不推荐用。
6.xpath 功能最强悍。但是执行速度慢,因为需要查找整个DOM, 所以尽量少用。实在没有办法的时候,才使用 xpath。
7.定位xpath, css_selector这些元素,可以通过鼠标右键复制,这样不会出错。
-
Selenium元素定位的30种方式(史上最全)
2020-09-16 21:42:12主要介绍了Selenium元素定位的30种方式,中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 -
Selenium定位元素操作示例
2020-12-23 21:22:57本文实例讲述了Selenium定位元素操作。分享给大家供大家参考,具体如下: Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10,... -
Python selenium根据class定位页面元素的方法
2020-09-19 13:59:54主要介绍了Python selenium根据class定位页面元素的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
python+selenium 定位到元素,无法点击的解决方法
2020-09-19 15:47:13今天小编就为大家分享一篇python+selenium 定位到元素,无法点击的解决方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 -
selenium元素定位的常用八种方法
2021-05-08 10:01:033、通过类名进行元素定位 find_elements_by_class_name() 4、通过元素标签属性 find_element_by_tag_name() 5、 通过页面文本信息 find_element_by_link_text() 6、通过模糊文本信息 find_element_by_partial_link_...1、通过ID进行定位
find_element_by_id()
2、通过名字进行定位
find_element_by_name()
3、通过类名进行元素定位
find_elements_by_class_name()
4、通过元素标签属性
find_element_by_tag_name()
5、 通过页面文本信息
find_element_by_link_text()
6、通过模糊文本信息
find_element_by_partial_link_text()
7、通过查找元素路径
find_element_by_xpath()
8、通过页面上的css元素进行定位
find_element_by_css_selector()例:
-
Python实现网页自动化-Selenium定位元素方法(三)
2020-06-06 00:34:13selenium定位元素方法 上一节我们学会了如何使用浏览器来查找网页元素,本节主要讲述如何将网页元素告知Selenium,并让它自动操控网页。 Selenium定位网页元素主要是通过元素的属性值或者元素在HTML里的路径位置,... -
selenium判断元素是否存在的两种方法小结
2021-01-21 15:19:15在selenium中没有对应的方法,需要自己去写。 元素存在,但不唯一,操作元素会报错 元素不存在,操作元素也会报错 第一种:捕获异常 弊端:只要页面上有元素,不几个,都返回True from selenium import webdriver... -
selenium八种定位元素方法
2021-01-29 09:27:181.driver.find_element_by_id('su')定位到元素的id一般id是唯一的,可以精确定位到元素2.driver.find_element_by_name()通过元素的name来定位元素3.driver.find_element_by_class_name()通过元素的class属性来定位4.... -
Selenium+Python之八种元素定位方法
2018-10-12 21:57:15一、id定位 driver.find_element_by_id("txtUaserName").send_keys("容音@lily") 二、name定位 driver.find_element_by_name("username").send_keys("容音@lily") 三、... -
Selenium 八种元素定位方法
2021-10-18 19:29:44在学习元素定位之前,我们最好能懂一点html的知识。 一、查看页面元素 用谷歌浏览器打开百度首页,点击右上角>更多工具>开发者工具,就可以看到整个页面的html代码了 点击框中左上角的箭头图标,移动... -
java selenium XPath 定位实现方法
2020-09-01 20:39:57本文主要介绍java selenium XPath,这里整理了XPath的资料,并附实现方法,有需要的小伙伴可以参考下 -
selenium---八种定位元素方法
2020-08-31 14:01:47selenium定位元素基本上和appium的定位元素方法相同,这里基于百度网站进行测试 id定位 通过了解HTML可以知道id是唯一表示,通过查找id的方法进行查找 name定位 name在HTML中通常指元素的名称 find_element_by_name... -
selenium定位元素的八种方法
2018-10-18 14:43:39selenium定位元素的八种方法 web driver提供了八种元素定位的方法: id, name, class name, tag name, link text, partial link text, xpath, css selector 如百度首页,百度一下按钮的元素信息 &... -
Selenium定位元素
2021-01-17 01:18:18Selenium提供多种find_element_by 方法用于定位页面元素。这些方法根据一定的标准去查找元素,如果元素被正常定位,那么WebElement实例将返回。反之,将抛出NoSuchElementException的异常。同时,Selenium还提供多种... -
selenium如何定位元素位置
2013-11-26 17:49:00众所周知,selenium自动化测试是基于UI的一种典型的测试策略,如何准确定位需要操作的浏览器元素或控件是自动化测试非常重要的工作,本文总结了常用的UI控件的定位方法,希望大家可以参考并进一步扩展 -
selenium By八种方式定位元素
2019-06-19 21:28:30使用selenium的By方式定位,首先得导入该模块 from selenium.webdriver.common.by import By id属性定位 find_element(By.ID,"id") name属性定位 find_element(By.NAME,"name") classname属性定位 find_element(By.... -
selenium基础:元素定位的8种方法
2018-08-07 11:17:47元素定位一共有8种方法 id 唯一的 name 元素的名称 class name 元素的类名 tag name 标签,不推荐,重复率太高 link text 文本链接 partial link text 对文本链接的一种补充 xpath ... -
selenium定位神器
2018-06-19 11:27:14python自动化selenium定位神器,火狐浏览器安装成功之后,再也不用看html,直接在页面对元素右键点击,直接定位到; -
java selenium元素定位大全
2020-09-01 20:55:45本文主要介绍java selenium元素定位,这里整理了selenium元素定位的相关资料,有兴趣的小伙伴可以参考下 -
对selenium中元素定位方法进行重构再封装
2022-03-28 17:06:35元素的定位方法可能会被多处代码调用,而在UI自动化测试过程中会涉及多个页面,每个页面在进行...示例:以python+selenium实现12306模拟火车票的查询及预订为例,对元素定位方法进行优化 python+selenium实现12306模拟 -
selenium4元素定位方式
2022-02-02 17:01:26selenium3被升级后,selenium4元素定位方式有什么改变 -
Selenium常用的八种元素定位方法
2020-01-22 11:16:401、通过 id 定位:find_element_by_id() 2、通过 name 定位:find_element_by_name() 3、通过 tag 定位:find_element_by_tag_name() 4、通过 class 定位:find_element_by_class_name() 5、通过 css 定位:find... -
RPA Selenium 定位Xpath 工具
2020-11-13 14:50:49RPA Selenium 定位Xpath 工具 ; Fire-IEBrowser1.4;xpath-helper -
Selenium中元素定位方法详细介绍
2021-06-17 09:14:44一、元素定位基本方法 1、如何进行元素定位? 元素:由标签头 + 标签尾 + 标签头和标签尾包括的文本内容; 元素的信息就是指元素的标签名及元素的属性; 元素的层级结构就是指元素之间相互嵌套的层级结构; 元素定位...