首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

自动化-Selenium 3-元素定位(Python版)

1、find_element使用给定的方法定位和查找一个元素 2、find_elements使用给定的方法定位和查找所有元素list 常用定位方式共八种: 1.当页面元素id属性时,最好尽量用by_id...1、by_id 当所定位的元素具有id属性的时候我们可以通过by_id来定位该元素。 例如打开百度首页,定位搜索框后输入Selenium搜索框页面源代码:属性id值为kw 脚本代码: #!...由于搜索到的标签名通常不止一个,所以一般结合使用find_elements方法来使用。 例如打开百度首页,获取超链接地图的文本信息。...by_css_selector通过CSS查找元素,这种元素定位方式跟by_xpath比较类似,Selenium官网的Document里极力推荐使用CSS locator,不是XPath来定位元素,原因是...如下面源码示例: 这段代码中的“订餐”这个超链接,没有标准id元素,只有一个rel和href,不是很好定位。

6.8K10
您找到你想要的搜索结果了吗?
是的
没有找到

8.9 Selenium元素定位方式

案例:打开百度首页,在搜索框自动输入“Selenium我要自学网”关键词,然后点击搜索按钮,查看搜索页面。...定位 Selenium极力推荐使用CSS 定位,不是XPath来定位元素,原因是CSS 定位比XPath 定速度快,特别是在IE浏览器环境 前端开发人员就是用CSS Selector设置页面上每一个元素的样式...,无论那个元素的位置有多复杂,他们能定位到,那我们使用CSS Selector肯定也能非常精准的定位到页面Elements。...CSS常用定位方法 #id id选择器根据id属性来定位元素 .class class选择器,根据class属性来定位元素 [attribute='value'] 根据属性来定位元素 element.Attribute...(By.ID,'su').click() sleep(3) driver.quit() frame页面定位 案例:在Frame.html文件中定位搜狗搜索页面,进行搜索操作。

1.2K10

全网最全关于selenium webdriver 8大元素定位详解

="su" class="bg s_btn" type="submit" value="百度一下"> id元素定位 案例:打开百度首页,在搜索框中自动输入“Selenium”,然后点击搜索按钮...") # 点击搜索按钮 driver.find_element_by_id('su').click() name元素定位 # -*- coding: utf-8 -*- from selenium import..._2401 is-center "]/preceding-sibling::img[@class="imglogo"] CSS常用定位方法 Selenium极力推荐使用CSS定位,不是xpath来定位元素...1、find_element_by_css_selector() 2、#id id选择器根据id属性来定位元素 3、.class class选择器,根据class属性值来定位元素 4、[attribute...("selenium") sleep(3) driver.quit() find_elements_by_id // 一个元素的值,可能存在多个相同的,因此我们可以使用find_elements_by_id

1.1K10

爬虫selenium+chromdriver

基本使用 import time from selenium import webdriver#驱动浏览器 from selenium.webdriver import ActionChains #滑动...,By.ID,By.CSS_SELECTOR from selenium.webdriver.common.keys import Keys #键盘按键操作 from selenium.webdriver.support...) browser.find_element(By.XPATH, '//*[@id="kw"]').send_keys('吐槽大会') 6.通过搜索 页面中 链接进行定位 有时候不是一个输入框也不是一个按钮...python Tornado") # browser.find_element(By.XPATH, '//*[@id="kw"]').send_keys('吐槽大会') # 通过搜索...,浏览器解析页面是需要时间的(执行css,js),一些元素可能需要过一段时间才能加载出来,为了保证能查找到元素,必须等待 #2、等待的方式分两种: wait=WebDriverWait(browser

2.2K20

自动化测试工具Selenium的基本使用方法

selenium基本使用 import time from selenium import webdriver#驱动浏览器 from selenium.webdriver import ActionChains...,By.ID,By.CSS_SELECTOR from selenium.webdriver.common.keys import Keys #键盘按键操作 from selenium.webdriver.support...(By.XPATH, '//*[@id="kw"]').send_keys('吐槽大会') 6.通过搜索 页面中 链接进行定位 有时候不是一个输入框也不是一个按钮,而是一个文字链接,我们可以通过link...() 四、等待元素被加载 1、selenium只是模拟浏览器的行为,浏览器解析页面是需要时间的(执行css,js),一些元素可能需要过一段时间才能加载出来,为了保证能查找到元素,必须等待 2、等待的方式分两种...selenium给我们提供了一个类来处理这类事件——ActionChains #iframe标签切换 #如果网页页面嵌套frame标签,子页面访问不到父页面的内容,父页面也访问不到子页面的内容所以需要切换

2K30

Selenium3元素定位详解与封装

但是还是需要比较清楚的是,UI自动化测试在DevOps的体系以及测试流水线上它是非常必要的,只不过我们需要使用更加正确的姿势来利用好这个技术,比如使用它来验证核心的流程,抛开更多的非主线的业务。...,也就是id,name,class都不可以的时候,可以使用xpath或者是css的模式,我个人一般推荐可以使用xpath的方式,那么获取元素属性的xpth怎么获取了,下面为具体说下操作步骤: 1、鼠标到需要操作的元素属性...解决的思路就是点击Copy full Xpath,这样获取到的xpath是完整的,就不会因为动态的ID导致错误。...多个元素定位解决方案 针对单个元素定位无法解决的问题,主要核心点获取到的元素属性都一样,比如就以百度搜索输入框为案例,我们使用的是input标签的方式进行,但是 input标签有8个,那么就不是唯一的了...,具体如下所示: 针对这种不是唯一的,我们可以使用多个元素定位的方式来解决,其实多个元素定位的核心思想是获取到的元素属性是一个列表,我们可以使用列表的索引来进行定位,比如针对标签的方法就是find_elements_by_tag_name

87320

Python+Selenium笔记(六):元素定位

HTML及相关的JS、CSS、图片等资源,浏览器使用这些资源生成WEB页面,其中包含WEB各种视觉元素,例如文本框、按钮、标签、图标、复选框、下拉框、图片等,这些视觉元素或控件都被Selenium称为页面元素...想要让Selenium执行我们想要的操作,首先必须让Selenium识别需要操作的元素,就像人通过眼睛去识别一样,Selenium通过定位元素的方法去识别页面元素,可以通过ID、 name、class属性定位...(2)   需要使用Xpth或CSS选择器时,可以在Elements窗口,Ctrl+F打开搜索框,在搜索框中输入Xpth或CSS表达式,匹配的元素会高亮显示(黄色部分),如果有多个匹配,搜索框的右侧会显示匹配数量...(2)   也可以用find_element(By.ID,'')这种写法,使用这种方式要先导入By模块 from selenium.webdriver.common.by import By (3)  ...,class属性有空格时,空格并不是一般认识中的空格符号,而是代表这个标签有多个class名,定位的时候使用第一个名称,或者不同名称之间用.分开就行了。

2.7K80

技术分享 | Web 控件定位与常见操作

实战演示 Selenium 自带 id 定位,可以通过元素id 属性进行定位,比如下面的代码: Python 版本 driver.find_element_by_id('kw') Java 版本 driver.findElement...下面来看一个例子: 要定位的元素是百度首页的搜索输入框 1080×495 156 KB 首先寻找 id 为 form 的 form 元素,然后再寻找它的子元素 span,span 的 class 属性为...//,它可以找到子孙节点,但斜杠/只能找到子节点: Python 版本 driver.find_element_by_xpath("//form[@id='form']//input[@id='kw'...,速度并不快, css_selector 采用样式定位,速度要优于 XPath,而且语法更简洁: 下面是 Selenium 使用 css_selector 的例子: css_selector 找到 class...根据 W3C 标准,它在页面中是唯一的,ID 在树结构中也是唯一的。 CSS Selector 语法简洁,搜索速度快于 XPath。 XPath 定位功能强大,采用遍历搜索,速度略慢。

1.3K20

Python无头爬虫Selenium系列(01):像手工一样操作浏览器

搜索并采集结果的标题 需求如下: 打开百度搜索主页 在输入框输入搜索内容(比如"爬虫") 点击"百度一下"按钮,进行搜索 把结果页面中的第一页的各个结果的主标题抓取下来 Selenium 的麻烦之处 本系列始终围绕一点开展...深入一点的流程图如下: 不同厂商不同版本的浏览器,都需要一个对应版本的"浏览器驱动" ---- "怎么案例都没开始,就在说 selenium不是呢?我到底还学不学?"...有2种常见的方式,css 选择器 或者 xpath selenium 文档中强烈推荐你使用 css 选择器 我们选用 css 选择器,因此,在右区的 input 标签上,按鼠标右键,选 "copy" ,...('#kw') 行3:wd.find_element_by_css_selector ,使用 css 选择器找到元素,方法中传入刚刚复制的"暗号"(按 ctor + v ,粘贴即可)。...所有结果的主标题: 这个可能对初学者有点难度,因为我们这次需要一次选择多个元素(多个搜索结果的主标题),看看定位到的标签: 每个搜索结果,都是一个 div标签(上图右区下方红框) 所有的搜索结果的

3.1K30

多语言自动化测试框架 Selenium 编程(C#篇)

如果由于下载对自动化不重要的资源(例如, 图像、css、js) 需要很长时间才能加载页面,,可以将默认参数 normal 更改为 eager 或 none 以加快会话加载速度。...当网页上的某些元素不是立即可用并且需要一些时间来加载时是很有用的。 隐式等待是告诉 WebDriver 如果在查找一个或多个不是立即可用的元素时轮询 DOM 一段时间。...在 WebDriver 中有 8 种不同的内置元素定位策略: 定位器 Locator 描述 class name 定位class属性与搜索值匹配的元素(不允许使用复合类名) css selector...定位 CSS 选择器匹配的元素 id 定位 id 属性与搜索值匹配的元素 name 定位 name 属性与搜索值匹配的元素 link text 定位link text可视文本与搜索值完全匹配的锚元素 partial...tag name 定位标签名称与搜索值匹配的元素 xpath 定位与 XPath 表达式匹配的元素 下面是查找元素的用例: // 通过 id 或 name IWebElement vegetable

3K20

Python无头爬虫Selenium系列(01):像手工一样操作浏览器

搜索并采集结果的标题 需求如下: 打开百度搜索主页 在输入框输入搜索内容(比如"爬虫") 点击"百度一下"按钮,进行搜索 把结果页面中的第一页的各个结果的主标题抓取下来 Selenium 的麻烦之处 本系列始终围绕一点开展...深入一点的流程图如下: 不同厂商不同版本的浏览器,都需要一个对应版本的"浏览器驱动" ---- "怎么案例都没开始,就在说 selenium不是呢?我到底还学不学?"...有2种常见的方式,css 选择器 或者 xpath selenium 文档中强烈推荐你使用 css 选择器 我们选用 css 选择器,因此,在右区的 input 标签上,按鼠标右键,选 "copy" ,...('#kw') 行3:wd.find_element_by_css_selector ,使用 css 选择器找到元素,方法中传入刚刚复制的"暗号"(按 ctor + v ,粘贴即可)。...所有结果的主标题: 这个可能对初学者有点难度,因为我们这次需要一次选择多个元素(多个搜索结果的主标题),看看定位到的标签: 每个搜索结果,都是一个 div标签(上图右区下方红框) 所有的搜索结果的

2.3K20

web自动化捕捉元素基本方法

&一、遇到问题 1.在使用脚本打开浏览器时候,发现右上角原来下载的插件firebug不见了,到底去哪了呢? 2.用脚本去打开浏览器时候,其实是重新打开了一个进程,跟手动打开浏览器不是一个进程。...总结: selenium的webdriver提供了18种(注意是18种,不是8种)的元素定位方法,前面8种是通过元素的属性来直接定位的,后面的xpath和css定位更加灵活,需要重点掌握其中一个。...2.4 CSS定位 前言:大部分人在使用selenium定位元素时,用的是xpath定位,因为xpath基本能解决定位的需求。...回到顶部 2.5 SeleniumBuilder辅助定位元素 前言 对于用火狐浏览器的小伙伴们,你还在为定位元素烦恼嘛?...(但是也不是万能,基本上都能覆盖到) 2.5.1 安装Selenium Builder 在火狐浏览器的附加组件中搜索添加Selenium Builder即可。安装好后如下图所示: ?

1.8K20

软件测试测试开发|Python selenium CSS定位方法详解

简介CSS选择器是一种用于选择HTML元素的模式。它允许我们根据元素的标签名、类名、ID、属性等属性进行选择。CSS选择器的语法简单灵活,是前端开发中常用的定位元素的方式。...\元素使用示例通过id选择器查找通过css定位的id属性查找百度首页的输入框元素,代码如下:from selenium import webdriverfrom selenium.webdriver.common.by..., 'input')print(element)层级选择器根据元素的父子关系来选择,实例:直接子元素层级关系,使用>号,继续以百度首页的搜索框为例,代码如下:from selenium import webdriverfrom...)print(element)注:如果两个元素之间不是直接的子元素关系,我们需要使用空格隔开,当有多级的层级关系时,我们可以使用duoge>符号,示例如下:from selenium import webdriverfrom...,推荐使用CSS定位来实现元素的定位。

24510

技术分享 | Web 控件定位与常见操作

实战演示 Selenium 自带 id 定位,可以通过元素id 属性进行定位,比如下面的代码: Python 版本 driver.find_element_by_id('kw') Java 版本 driver.findElement...下面来看一个例子: 要定位的元素是百度首页的搜索输入框 [e02de23dd5d1dcf060746dc8242bb69158256c0f.png] 首先寻找 id 为 form 的 form 元素,然后再寻找它的子元素...,请注意,这里使用了双斜杠//,它可以找到子孙节点,但斜杠/只能找到子节点: Python 版本 driver.find_element_by_xpath("//form[@id='form']//input...可以定位绝大多数元素,但是XPath采用从上到下的遍历模式,速度并不快, css_selector 采用样式定位,速度要优于 XPath,而且语法更简洁: 下面是 Selenium 使用 css_selector...根据 W3C 标准,它在页面中是唯一的,ID 在树结构中也是唯一的。 CSS Selector 语法简洁,搜索速度快于 XPath。 XPath 定位功能强大,采用遍历搜索,速度略慢。

1.1K10

Python爬虫利器Selenium从入门到进阶

,例如HTML,CSSID标签的定位 在HTML当中,ID属性是唯一标识一个元素的属性,因此在selenium当中,通过ID来进行元素的定位也作为首选,我们以百度首页为例,搜索框的HTML代码如下,...其ID为“kw”,“百度一下”这个按钮的ID为“su”,我们用Python脚本通过ID的标签来进行元素的定位 driver.find_element_by_id("kw") driver.find_element_by_id...("classname")[n] 需要注意的是,这里使用的是find_elements_by_class_name()方法不是find_element_by_class_name()方法,这里我们还是通过百度首页的例子...CssSelector()方法来进行页面元素的定位的,原因在于相比较于Xpath定位速度更快,Css定位分为四类:ID值、Class属性、TagName值等等,我们依次来看 ID方式来定位 大概有两种方式...模拟浏览器的特征,这个文件之前是给puppeteer用的,使得其隐藏浏览器的指纹特征,让Python使用时,需要先导入这份JS文件 import time from selenium.webdriver

1.5K50

selenium定位元素报错:‘WebDriver‘ object has no attribute ‘find_element_by_id

,发现是Selenium更新到新版本(4.x版本)后,以前的一些常用的代码的语法发生了改变,当然如果没有更新过或是下载最新版本的Selenium是不受到影响的,还可以使用以前的写法。...Selenium3版本的元素定位写法 inputTag = driver.find_element_by_id("value") # 利用ID定位 inputTags = driver.find_element_by_class_name...("value") # 利用CSS选择器定位 在版本没有更新前我们使用的都是driver.findelement_by方法名(”value”),方法名就是by_id、by_class_name、by_name...等等,"value",则是传入的值,以百度搜索按钮为例,浏览器开发者工具可看其HTML源代码中属性id=”su“,以旧版本的写法使用id值查找搜索框应该是: searchTag = driver.find_element_by_id...("su") 在版本没有更新之前,通常情况下运行都是能够正确定位到对应的元素,但是Selenium经过版本升级之后,运行后会报错,以driver.find_element_by_id(“value”)

4.4K00

​技术分享 | Web 控件定位与常见操作

实战演示 Selenium 自带 id 定位,可以通过元素id 属性进行定位,比如下面的代码: Python 版本 driver.find_element_by_id('kw') Java 版本 driver.findElement...下面来看一个例子: 要定位的元素是百度首页的搜索输入框 [e02de23dd5d1dcf060746dc8242bb69158256c0f.png] 首先寻找 id 为 form 的 form 元素,然后再寻找它的子元素...,请注意,这里使用了双斜杠//,它可以找到子孙节点,但斜杠/只能找到子节点: Python 版本 driver.find_element_by_xpath("//form[@id='form']//input...可以定位绝大多数元素,但是XPath采用从上到下的遍历模式,速度并不快, css_selector 采用样式定位,速度要优于 XPath,而且语法更简洁: 下面是 Selenium 使用 css_selector...根据 W3C 标准,它在页面中是唯一的,ID 在树结构中也是唯一的。 CSS Selector 语法简洁,搜索速度快于 XPath。 XPath 定位功能强大,采用遍历搜索,速度略慢。

1.1K30

彻底学会Selenium元素定位

Selenium八大元素定位 所谓八大元素定位方式就是id、name、class_name、tag_name、link_text、partial_link_text、xpath、css_selector...使用id选择器的前提条件是元素必须要有id属性。由于id值一般是唯一的,因此当元素存在id属性值时,优先使用id方式定位元素。...Selenium框架官方推荐使用CSS定位,因为CSS定位效率高于XPATH。 CSS是一种标记语言,控制元素的显示样式,就必须找到元素,在CSS标记语言中找元素使用CSS选择器。...因为我们通过Chrome浏览器的开发者工具可以看出蓝色线代表DOM出现,红色线代表图片等资源已加载完,如果用xpath定位元素,其实是在DOM出现的时候进行查找,当你使用css_selector进行元素定位的时候...,frame中实际上是嵌入了另一个页面,webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,再对那个页面里的元素进行定位 如果使用xpath或css_selector,请在浏览器开发者工具中调试测试正确后再写入代码中

5K31

Selenium元素定位的30种方式(史上最全)

Selenium对网页的控制是基于各种前端元素的,在使用过程中,对于元素的定位是基础,只有准去抓取到对应元素才能进行后续的自动化控制,我在这里将对各种元素定位方式进行总结归纳一下。...这里将统一使用百度首页(www.baidu.com)进行示例,f12可以查看具体前端代码。 WebDriver8种基本元素定位方式 find_element_by_id() 采用id属性进行定位。...例如在百度页面中输入关键字 Selenium 进行搜索。...比如查找搜索框的时候发现其上级元素form又唯一的id方便定位,就可以先查找到form元素然后依次往下写路径: find_element_by_xpath("//form[@id='form']/span...元素定位的30种方式(史上最全)的文章就介绍到这了,更多相关Selenium元素定位内容请搜索ZaLou.Cn以前的文章或继续浏览下面的相关文章希望大家以后多多支持ZaLou.Cn!

3.6K20
领券