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

如何在Selenium WebDriver中查找元素?(一)

首先,我们将了解如何找到 通过ID查找 每个元素ID都是唯一,因此这是使用ID Locator定位元素常用方法。这是检测元素最常见最快,最安全方法。...如果不能通过Id / name / link / className / XPATH / CSS检测到特定Web元素,则该方法未被广泛使用并用作最后手段。...让我们继续前进,看看如何使用LinkText查找元素 通过链接查找文本/部分链接 使用这种方法,可以找到带有链接名称或具有匹配部分链接名称“ a ”标签( Link )元素。...通过CSS选择器查找 对于生成动态ID网站(例如基于ADF应用程序)或基于最新JavaScript框架(例如–无法生成任何ID或名称React js)构建网站,无法使用ID /名称策略定位器来查找元素...– 带有ID标签 css =标签#id public class LocateByCSSSelector { public static void main (String [] args

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

XPATH定位(基础篇)

= "//input[@type='XX' and @name='XX']" 2.利用text()方法定位 如上所示,在【一步】按钮标签之间有一段文本“一步”,那么可以通过下面这种方式来定位...标签名[contains(@属性, '属性值')]" 4.如果一个元素无法通过自身属性直接定位到,则可以先定位它父(或父父,它爷爷)元素,然后再找下一级即可 例如定位『百度搜索框』,可以按照此种方式试验一下...(主要是看一下这个思路) 百度搜索框对应标签,定位标签的话, 可以先定位标签, 再定位标签元素标签, 最后找到标签...'python') 注意: 在第二步定位元素时,没有用id属性, 因为在实际中发现通过webdriver打开浏览器网页中标签没有id属性了 所以选用标签...还有当定位失败时不要慌,找下原因,眼见不一定为实 像上面定位百度搜索框时,通过id属性没有定位到标签, 查看通过webdriver打开网页元素时,发现标签id属性没了,只有

47510

selenium使用

selenium简单使用 接下来我们就通过代码来模拟百度搜索 import time from selenium import webdriver # 通过指定chromedriver路径来实例化...')定位id属性值是'kw'标签,并向其中输入字符串'python' driver.find_element_by_id('su').click()定位id属性值是su标签,并点击 click函数作用是...在selenium中可以通过多种方式来定位标签,返回标签元素对象 方法 介绍 find_element_by_id (返回一个元素) find_element(s)_by_class_name (根据类名获取元素列表...) find_element(s)_by_name (根据标签name属性值返回包含标签对象元素列表) find_element(s)_by_xpath (返回一个包含元素列表) find_element...(通过find_element_by函数定位frame、iframe标签对象) 通过查找元素方法查找到frame框架,然后再把查找到元素赋值给上述方法 利用切换标签方式切出frame标签 windows

1.3K10

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

反正小编看这个介绍是云里雾里,通俗一点讲就是通过元素路径来查找到这个元素。 2.3.1 xpath:属性定位 1.xptah也可以通过元素id、name、class这些属性定位,如下图: ?...2.3.2 xpath:其它属性 1.如果一个元素id、name、class属性都没有,这时候也可以通过其它属性定位到 2.3.3 xpath:标签 1.有时候同一个属性,同名比较多,这时候可以通过标签筛选下...2.3.4 xpath:层级 1.如果一个元素,它属性不是很明显,无法直接定位到,这时候我们可以先找它老爸(父元素)。 2.找到它老爸后,再找下个层级就能定位到了。 ?...2.3.5 xpath:索引 1.如果一个元素兄弟元素跟它标签一样,这时候无法通过层级定位到。因为都是一个父亲生,多胞胎兄弟。...2.4.3 css:标签 1.css页可以通过标签与属性组合来定位元素 ?

1.8K20

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

在做 Web 自动化时,最根本就是操作页面上元素,首先要能找到这些元素,然后才能操作这些元素。工具或代码无法像测试人员一样用肉眼来分辨页面上元素。...XPath 是一个定位语言,英文全称为:XML Path Language,用来对 XML 元素进行定位,但也适用于 HTML。...//,它可以找到子孙节点,而但斜杠/只能找到子节点: Python 版本 driver.find_element_by_xpath("//form[@id='form']//input[@id='kw'...可以通过元素 class 属性值进行定位: 1080×349 123 KB 这里 active 用就是上图 class Python 版本 driver.find_element_by_class_name...关闭当前窗口 driver.close(); //关闭浏览器 driver.quit(); 获取元素标签属性 get_attribute(‘value’),元素坐标 location,元素大小

1.3K20

自动化测试——selenium(环境部署和元素定位篇)

产生这个原因python环境内部没有 pip 路径,则需要我们收到导入 解决方法: 1、找到我们python工具中pip所在文件夹,复制其路径 2、右键,点击我电脑 选择属性...,点击高级系统设置,再点击环境变量 3、点击环境变量后,找到Path然后编辑,把复制路径粘贴进去就可以 了。...计算机无法向人一样,所见即所得,因此需要通过元素定位来指定计算机所定位元素来进行操作 2、定位工具: 1)、谷歌使用 F12 进入开发者工具 2)、右键点击检查进入开发者工具...,用哪一种都无所谓,最常用是 id ,xpath,css 3.1 id定位方法 说明:通过元素id属性定位,id一般情况下在当前页面中是唯一。...(多个属性) 解决是单个属性和属性值无法定位元素唯一性问题。

1.4K10

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

原文链接 在做 Web 自动化时,最根本就是操作页面上元素,首先要能找到这些元素,然后才能操作这些元素。工具或代码无法像测试人员一样用肉眼来分辨页面上元素。...XPath 是一个定位语言,英文全称为:XML Path Language,用来对 XML 元素进行定位,但也适用于 HTML。...//,它可以找到子孙节点,而但斜杠/只能找到子节点: Python 版本 driver.find_element_by_xpath("//form[@id='form']//input[@id='kw'...例子: css_selector 找到 class 属性为 active 元素,然后 > 表示找 class 属性为 active 元素子节点 Python 版本 driver.find_element_by_css_selector...可以通过元素 class 属性值进行定位: [09baf5973e29635c151b9ad8bc5a37627afd22a5.png] 这里 active 用就是上图 class Python

1.1K10

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

一、前言 由于requests模块是一个不完全模拟浏览器行为模块,只能爬取到网页HTML文档信息,无法解析和执行CSS、JavaScript代码,因此需要我们做人为判断; selenium模块本质是通过驱动浏览器...------>点击标签事件,所以selenium关键是怎么找到页面中标签,进而触发标签事件; 1.通过标签id属性进行定位 browser.find_element(By.ID,'kw').send_keys..., '#kw').send_keys('python 之美') 5.通过xphan方式定位 browser.find_element_by_xpath('//*[@id="kw"]').send_keys...("python Tornado") browser.find_element(By.XPATH, '//*[@id="kw"]').send_keys('吐槽大会') 6.通过搜索 页面中 链接进行定位...('xpath')) ''' 显式等待:指定等待某个标签加载完毕 隐式等待:等待所有标签加载完毕 ''' 五、元素交互操作 ActionChains 用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行情况

2K30

《手把手教你》系列技巧篇(十五)-java+ selenium自动化测试-元素定位大法之By xpath中卷(详细教程)

3.xpath定位缺点 xpath 这种定位方式, webdriver会将整个页面的所有元素进行扫描以定位我们所需要元素, 这是个非常费时操作, 如果脚本中大量使用xpath元素定位的话, 脚本执行速度可能会稍慢...2.通过xpath定位到元素,点击一下。...可以看到,input标签元素是span标签,而span标签元素是form标签,所以可以通过先定位form标签,然后利用descendant定位input标签 xpath路径如下: //定位思路:...属性为s_kw_wrap标签, //(2)following::input[@id='su']表示找到结束标签(即)后所有input标签, //(3)然后通过[...定位网页中python: //定位思路: //(1)先定位Java,然后找到Java父节点li, //(2)然后再找li兄弟节点,即包含Python那个li标签, //(3)然后再找li孩子节点

3.2K40

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

selenium 常用元素定位方式 元素定位应该是自动化测试核心,想要操作一个元素,首先应该识别这个元素Webdriver提供了一系列元素定位方法。...首先,我们先看看下面的这段HTML代码,接下来我们会通过这段代码去介绍元素定位方式。...preceding-sibling: 当前元素节点标签上级 following: 当前元素节点标签下级 following-sibling: 当前元素节点标签之后所有兄弟节点...这种方法,找到属性值,然后定义一个变量,通过索引方式去进行定位元素。...通俗点理解,就是一个页面中嵌套了另外一个网站页面。frame对象代表了一个HTML内联框架,如果你在自动化测试中无法定位到元素,那么最大可能就是元素在frame框架中。

1.1K10

Python教程:selenium模块用法教程

1.介绍selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码问题selenium本质是通过驱动浏览器,完全模拟浏览器操作,比如跳转...# 强调: # 1、上述均可以改写成find_element(By.ID,'kw')形式 # 2、find_elements_by_xxx形式是查找到多个元素,结果为列表..."]') #找到标签imgsrc属性为image3_thumb.jpga标签 print(res2.tag_name,res2.text) res3 = driver.find_element_by_xpath...,为了保证能查找到元素,必须等待2、等待方式分两种:隐式等待:在browser.get('xxx')前就设置,针对所有元素有效显式等待:在browser.get('xxx')之后设置,只针对某个元素有效隐式等待...,在父frame里是无法直接查看到子frame元素,必须switch_to_frame切到该frame下,才能进一步查找from selenium import webdriverfrom selenium.webdriver

1.7K20

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

原文链接 在做 Web 自动化时,最根本就是操作页面上元素,首先要能找到这些元素,然后才能操作这些元素。工具或代码无法像测试人员一样用肉眼来分辨页面上元素。...XPath 是一个定位语言,英文全称为:XML Path Language,用来对 XML 元素进行定位,但也适用于 HTML。...//,它可以找到子孙节点,而但斜杠/只能找到子节点: Python 版本 driver.find_element_by_xpath("//form[@id='form']//input[@id='kw'...例子: css_selector 找到 class 属性为 active 元素,然后 > 表示找 class 属性为 active 元素子节点 Python 版本 driver.find_element_by_css_selector...可以通过元素 class 属性值进行定位: [09baf5973e29635c151b9ad8bc5a37627afd22a5.png] 这里 active 用就是上图 class Python

1.1K30

Python爬虫系列讲解」八、Selenium 技术

Selenium 解析 3 定位元素 3.1 通过 id 属性定位元素 3.2 通过 name 属性定位元素 3.3 通过 XPath 路径定位元素 3.4 通过超链接文本定位元素 3.5 通过标签名定位元素...3.1 通过 id 属性定位元素 该方法通过网页标签 id 属性来定位元素,它将返回第一个与 id 属性值匹配元素。...3.2 通过 name 属性定位元素 该方法通过网页标签 name 属性来定位元素,它将返回第一个与 name 属性值匹配元素。...3.3 通过 XPath 路径定位元素 XPath 是用于定位 XML 文档中节点技术,HTML/XML 都是采用网页 DOM 树状标签结构进行编写,所以可以通过 XPath 方法分析其节点信息。...3.5 通过标签名定位元素 通过标签名(Tag Name)定位元素并将返回第一个用标签名匹配定位元素。如果没有元素匹配,则抛出一个 NoSuchElementException 异常。

7K20

爬虫学习(三)

选取所有带有属性title元素: //title[@*] 1.1.3注意点 找字符串时候(标签文本),一般在路径后面加上 text()。...我们选择元素,右键使用copy XPath时候,可能此语句在后端代码中无法执行(无法找到指定元素),这时就需要使用XPath语法对其进行修改,这也就是为什么有这么方便工具我们仍然要学习语法。...4.1.3 通过js来反爬 普通爬虫默认情况下无法执行js,获取js执行之后结果,所以很多时候对方服务器会通过js技术实现反爬。...但是XPath效率高一点,正则是最高。 4.4.3窗口与框架 XPath无法提取到Iframe框架里面的处理。 selenium标签切换: # 1....("属性名") 通过定位获取标签对象 get_attribute函数,传入属性名,来获取属性值 代码: from selenium import webdriver driver = webdriver.Chrome

5.7K30

厌倦了逆向,还是总结下 selenium 吧。

('kw').send_keys('python') time.sleep(1) driver.find_element_by_id('su').click() time.sleep(1) # 通过执行...(通过find_element_by函数定位frame、iframe标签对象) 利用切换标签方式切出frame标签 windows = driver.window_handles driver.switch_to.window...,则会浪费时间 隐式等待 隐式等待针对元素定位,隐式等待设置了一个时间,在一段时间内判断元素是否定位成功,如果完成了,就进行下一步 在设置时间内没有定位成功,则会报超时加载 示例代码: from...# EC.presence_of_element_located((By.LINK_TEXT, '好123')) 表示通过链接文本内容定位标签 # 每0.5秒一次检查,通过链接文本内容定位标签是否存在...('--user-agent=Mozilla/5.0 HAHA') 实例化带有配置对象driver对象 driver = webdriver.Chrome('.

1.3K10

四、请求库之selenium模块

一 介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码问题 selenium本质是通过驱动浏览器,完全模拟浏览器操作,...# 强调: # 1、上述均可以改写成find_element(By.ID,'kw')形式 # 2、find_elements_by_xxx形式是查找到多个元素,结果为列表..._thumb.jpg"]') #找到标签imgsrc属性为image3_thumb.jpga标签 print(res2.tag_name,res2.text) res3 = driver.find_element_by_xpath...,为了保证能查找到元素,必须等待 #2、等待方式分两种: 隐式等待:在browser.get('xxx')前就设置,针对所有元素有效 显式等待:在browser.get('xxx')之后设置,只针对某个元素有效...('alert("hello world")') #打印警告 finally: browser.close() #frame相当于一个单独网页,在父frame里是无法直接查看到子frame元素

2.9K50

🔥《手把手教你》系列基础篇之3-python+ selenium自动化测试-驱动浏览器和元素定位大法(详细)

对于上面结构,如果把 input 看作是子标签,那么 form 就是它标签。...那么我们就可以通过身证号和名字来找到一个人。...5.4 tag 定位 tag 定位取是一个元素标签名,通过标签名去定位单个元素唯一性最底,因为在一个页面中有太多元素标签为和了,所以很难通过标签名去区分不同元素。...不过,需要强调Python 对于中文支持并不好,如查 Python 在执行中文地方出现在乱码,可以在中文件字符串前面加个小“u”可以有效避免乱码问题,加 u 作用是把中文字 符串转换中...前面所介绍几种定位方法相对来说比较简单,我们理想状态下在一个页面当中每一个元素都会有一个唯一 id 和 name 属性值,我们通过属性值来找到他们,但在实际项目中并非想象这般美好。

93840

爬虫selenium+chromdriver

前言: 由于requests模块是一个不完全模拟浏览器行为模块,只能爬取到网页HTML文档信息,无法解析和执行CSS、JavaScript代码,因此需要我们做人为判断; selenium模块本质是通过驱动浏览器...------>点击标签事件,所以selenium关键是怎么找到页面中标签,进而触发标签事件; 1.通过标签id属性进行定位 browser.find_element(By.ID,'kw').send_keys..., '#kw').send_keys('python 之美') 5.通过xphan方式定位 browser.find_element_by_xpath('//*[@id="kw"]').send_keys...("python Tornado") browser.find_element(By.XPATH, '//*[@id="kw"]').send_keys('吐槽大会') 6.通过搜索 页面中 链接进行定位...#找到拖拽标签 target=browser.find_element_by_id('droppable')#找到拖拽目标标签 action_chains.drag_and_drop(source

2.3K20
领券