python+selenium 定位元素的主要方法】的更多相关文章

selenium对web各元素的操作首先就要先定位元素,定位元素的方法主要有以下几种: 通过id定位元素:find_element_by_id("id_vaule") 通过name定位元素:find_element_by_name("name_vaule") 通过tag_name定位元素:find_element_by_tag_name("tag_name_vaule") 通过class_name定位元素:find_element_by_clas…
Python+Selenium有以下八种定位元素的方法: 1. find_element_by_id() eg: find_element_by_id("kw") 2. find_element_by_name() eg: find_element_by_name("wd") 3. find_element_by_class_name() eg: find_element_by_class_name("bg s_btn") 4. find_ele…
   在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果ifr…
什么是元素?我们知道网页上有什么内容显示出来,比如一个按钮,一个输入框,一张图片,都可以理解成元素,这些元素是由html代码构成的,比如图片可以用<img>标签来展示,一个输入框可以用<input>标签来表示...... 如上图的百度搜索框,通过HTML源码,我们可以看到下图的代码: 它是一个input,其中有type.class.name.id等属性,我们可以根据这些属性值来定位元素. Selenium 功能丰富的API 提供了多个定位策略如:Name.ID.CSS 选择器.XP…
selenium 定位元素可以用多个findElement,如driver.findElement(By.id"XXX").findElement(By.linkText(XXX)); 上一级的id 加上下一级需要定位的元素text文字…
[环境] Python3.6+selenium3.0.2+FireFox50+win7 [定位方法] 1.方法:find_element_by_xpath('') 说明:xpath定位方法有相对路径和绝对路径之分,当元素层级较多时,绝对路径会很长: 相对路径具有布尔逻辑运算. 缺点: 1)性能差,定位元素的性能比其他方式差: 2)稳定性差,Xpath会随着页面布局元素的改变而改变: 3)兼容性不好,在不同浏览器下Xpath的实现是不一样的. [示例] import unittest from s…
[环境] Python3.6+selenium3.0.2+IE11+win7 [定位方法] 1.link/partial link定位方法:定位的元素为文字链接且链接很长时 方法:find_element_by_link_text('xx‘) find_element_by_partial_link_text('xx') [示例] 用以下代码成功定位 import unittest from selenium import webdriver import time class LearnEle…
以百度搜索框为例,先打开百度网页 1.点右上角爬虫按钮 2.点左下角箭头 3.讲箭头移动到百度搜索输入框上,输入框高亮状态 4.下方红色区域就是单位到输入框的属性: <input id="kw" class="s_ipt" type="text" autocomplete="off" maxlength="100" name="wd"> 元素定位:find_element_b…
     在做web应用的自动化测试时,定位元素是必不可少的,这个过程经常会碰到定位不到元素的情况(报selenium.common.exceptions.NoSuchElementException),一般可以从以下几个方面着手解决: 1.Frame/Iframe原因定位不到元素: 这个是最常见的原因,首先要理解下frame的实质,frame中实际上是嵌入了另一个页面,而webdriver每次只能在一个页面识别,因此需要先定位到相应的frame,对那个页面里的元素进行定位. 解决方案: 如果i…
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro…
1.什么是Selenium,为什么web测试,大家都用它? Selenium设计初衷就是为web项目的验收测试再开发.内核使用的是javaScript语言编写,几乎支持所以能运行javaScript的浏览器,支持windows\linux\macos等各种平台. Selenium 脚本是用多种受支持的编程语言中的一种编写的 —— 目前可用的有 Java.Ruby 和 Python 驱动程序.这些脚本在浏览器之外的一个单独的进程中运行.驱动程序的任务是执行测试脚本,并通过与运行在浏览器中的 bro…
#打开网页前三步 from selenium import webdriver driver=webidriver.Chrome() driver.get("https://www.baidu.com")   #设置休眠时间 import time time.sleep(2)   #刷新页面 driver.refresh()   #页面切换 driver.back()#返回上一页 driver.forward()#切换到下一页   #设置窗口大小 driver.set_window_s…
1.定位元素(id.name.class.link.partial link) (1)find_element_by_id() 用百度定位测试,用firebug查看定位元素 ,输入框的id为“kw”,[百度一下]按钮的id为“su”. from selenium import webdriver #导入selenium的webdriver包 driver = webdriver.Firefox() driver.get("https://www.baidu.com") driver.f…
1.通过id定位元素 写法1: element = driver.find_element_by_id("kw") 写法2: from selenium.webdriver.common.by import By element = driver.find_element(by=By.ID, value="kw") Tips: by=By.ID表示以id的方式定位web元素,下面的例子有类似的写法以此类推   2.通过class定位元素 写法1: cheeses =…
1.id定位: find_element_by_id() 从上面定位到的搜索框属性中,有个id="kw"的属性,我们可以通过这个id定位到这个搜索框 代码: # coding = utf-8 from time import sleep from selenium import webdriver # 驱动文件路径 driverfile_path = r'D:\coship\Test_Framework\drivers\chromedriver.exe' # 启动浏览器 driver…
定位隐藏要素的原理:页面主要通过“display:none”来控制元素不可见.所以我们需要通过javaScript修改display的值得值为display="block,来实现元素定位的. HTML代码: <header id="header"> <a href="#" class="logo"><strong id="Title" style="display: none&…
在操作过程中主要遇到两种阻塞的问题,总结如下: 1.页面中有iframe,定位元素时,需要用switch_to.frame()转换到元素所在的frame上再去定位 2.遇到一种新情况,有些按钮在html上没有被赋予herf链接,而是由javascript控制跳转到新的页面,这种情况下点击按钮之后浏览器上打开一个新页面,但是浏览器的句柄handle仍然会停留在原页面(浏览器显示的句柄在新页面,所以不容易发现这个问题),而不是新弹出的页面上,所以要定位新页面的元素,必须先将句柄转移到新弹出的页面上,…
Selenium  如何定位动态元素: 测试的时候会遇到元素每次变动的情况,例如: <div id="btn-attention_2030295">...</div> 这个id 可能每次都不同,所以如何定位到该类元素呢? 1. 根据其他属性定位 如果有其他固定属性,最先考虑的当然是根据元素的其他属性来定位,定位方式那么多,何必在这一棵树上吊死.. 2.根据相对关系定位 根据其附近的父节点.子节点.兄弟节点定位,关于这方面,博主之前的一篇文章可作为参考:Pytho…
APP元素定位和操作 webdriver 提供了八种元素定位方法: 在 Python 语言中对应的定位方法如下:find_element_by_id()find_element_by_name()find_element_by_class_name()find_element_by_tag_name()find_element_by_link_text()find_element_by_partial_link_text()find_element_by_xpath()find_element_…
注明:本内容从https://my.oschina.net/flashsword/blog/147334处转载. 在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search&quo…
问题描述 UI页面功能测试中, 定位元素并输入(通过sendKey()方法输入), 显示输入失败. 根本原因 为了修复一个bug, 这个元素从input改成了textarea, 而textarea是有一个默认值的, 所以直接输入不成功. 解决方案 先调用clear()方法, 然后再调用sendKey()方法就可以了.…
转自:http://www.cnblogs.com/yufeihlf/p/5717291.html 父子定位元素 查找有父亲元素的标签名为span,它的所有标签名叫input的子元素 find_element_by_css_selector("span>input") 标签名[属性=’属性值‘]:指的是该input标签下name属性为wd的元素 find_element_by_css_selector("input[name='wd']") 多个属性组合定位元…
[环境] Python3.6+selenium3.0.2+IE11+Win7 [定位方法] 1.通过ID定位 方法:find_element_by_id('xx') 2.通过name定位 方法:find_element_by_name('xx') 3.通过class name定位 方法:find_element_by_class_name('xx') 4.通过tag name定位 方法:find_element_by_tag_name('xx') 说明:tag name在html中是标签的名字,…
[环境] python3.6+selenium3.0.2+Firefox50.0+win7 [定位方法] 1.方法:find_element_by_css_selector('xx') CSS的语法比较复杂,还需要进一步学习,在初期学期过程中,如果有问题可以采用Firebug工具自动定位元素. [示例] 简单的示例,这种定位方法还需要加强 #----------CSS定位----------- def testCss(self): #通过属性定位百度搜索框 element = self.driv…
今天在写selenium一个发送邮件脚本时,遇到一些没有找到页面元素的错误.经过自己反复调试,找原因百度,终于解决了.简单总结一下吧,原因有以下几点: 一:Frame控件嵌套,.Frame/Iframe原因定位不到元素: 一般大家经常使用的邮箱算是frame嵌套的典型,通常注册登录都是在一个frame控件里面,而且标题正文可能是frame中嵌套iframe,接下里用我今天的脚本为例子(qq邮箱) 可以看到,如果我们要想找到收件人,标题就要先进到第一个Frame控件中,否则就会报错,但如果还要找到…
最近在使用selenium的过程中发现有元素能够在页面中查找到,但是pycharm中运行时始终报错element not visible,于是使用如下方法成功解决问题. 1.driver.find_element_by_xpath("").is_displayed() 首先使用is_displayed()方法查看这个元素,发现返回的是False,说明该元素不可见.2.浏览器中查看到该元素没有什么不可见的属性,那么再往上找,发现父元素中有一个dispaly:none.3.通过js语句修改…
首先要确定弹窗的类型: (1)div弹窗 (2)新标签页弹窗 (3)alert弹窗 一,div弹窗div弹窗是浏览器中比较好定位的弹窗,定位的方法与普通的元素一样.不过这里会有一个坑,明明可以找到这个按钮,但是就是定位不到.这个就是因为当前有div弹窗弹出的时候,需要设置一下等待时间,等页面元素加载完毕,再去做其他操作.这里用百度登陆为例子: from selenium import webdriver import time def login_baidu(url,username,passw…
工具 Xpath的练习建议下载火狐浏览器,下载插件Firebug.Firepath. 由于最新版火狐不支持Firebug等扩展工具了,所以需要下载49版以下的版本安装https://ftp.mozilla.org/pub/firefox/releases/,再进行插件扩展. 什么是Xpath? Xpath是XML路径语言,简言之就是通过元素的路径来查找这个标签元素. Xpath的使用方法 1.Xpath支持ID.Name.Class定位 2.如果标签没有ID.Name.Class三种属性,Xpa…
web driver提供了八种元素定位的方法: id, name, class name, tag name, link text, partial link text, xpath, css selector 如百度首页,百度一下按钮的元素信息 <input type="submit" id="su" value="百度一下" class="bg s_btn"> 百度首页新闻的页面的元素信息 <a href…
By.id,By.name,By.tagName,By.className,By.linkText,By.partialLinkText,By.xpath,By.cssSelector <a href=http://news.baidu.com target=_blank class=mnav>新闻</a> By.linkText("新闻"): By.partialLinkText("闻"):By.partialLinkText("…