在python + selenium 中经常会遇到找到的元素不唯一,导致定位到的元素不是预期的或者定位不到元素 解决方法:只要在页面进行确认找到的元素唯一后,再进行操作 页面确认方法: 1.通过html中检索功能确认 进入开发者模式:点击右上角三个点-->选则 search 进行查找 或者直接ctrl + F (windows下)/ command + F (mac系统下) 如下图进行查找,查找方法和 selenium 中一样,如 class = ‘mnav’则查找中输入 .mnav; id =…
Selenium Web 自动化 - 项目实战(三) 2016-08-10 目录 1 关键字驱动概述2 框架更改总览3 框架更改详解  3.1 解析新增页面目录  3.2 解析新增测试用例目录  3.3 解析自动生成代码  3.4 读取用例excel数据,定位元素,并进行操作  3.5 更改SeleniumUtil.java 源代码:autotestKeywordDrive.zip 1 关键字驱动概述 返回 关键字驱动测试(Keyword-driven testing),也叫做表格驱动测试或者基…
天一同学在写Selenium Java脚本时遇到一个问题,登录进入系统之后,要点击左侧的一个菜单,但是执行到该语句时报下面的错误: Firefox中报错如下:org.openqa.selenium.ElementClickInterceptedException: Element <div class="el-submenu__title"> is not clickable at point (115,358) because another element <di…
org.openqa.selenium.NoSuchElementException: no such element: Unable to locate element(识别不到想要的元素) 想获取到收件箱中包含坚果云的字段  此处遇见的问题,网页中想要识别的元素在iframe框中,于是不能直接: driver.findElement(By.id("img_out_995536807")).click();需要先识别frame,然后再找元素: driver.switchTo().fr…
前言 在UI自动化过程中,常遇到元素未找到,代码报错的情况.这种情况下,需要用等待wait. 在selenium中可以用到三种等待方式即sleep,implicitly_wait,WebDriverWait 一.固定等待(sleep) 导入time模块,设定固定的等待时间 缺点:在网络状态良好,元素可以加载出来的情况下,依然需要等待,会导致脚本允许时间延长.        二.隐式等待(implicitly_wait)        隐式等待是指页面元素在设定时间内全部加载完成,才能执行下一步.…
本系列主要讲解webdriver常用的API使用方法(注意:使用前请确认环境是否安装成功,浏览器驱动是否与谷歌浏览器版本对应) 一:获取页面元素的文本内容:text 例:获取我的博客名字文本内容 代码: from selenium import webdriver # 导入webdriverimport timedriver = webdriver.Chrome() # 实例化driver.get('https://www.cnblogs.com/kevin-liutianping/') # 打…
有时候刚进入页面输入第一个值时脚本会报错:cannot focus element 贴下我的脚本和解决办法供大家参考 我原本的脚本是: WebDriverWait(driver,15,0.5).until(EC.visibility_of_element_located((By.ID,"inputCtrl0"))).send_keys(“Company”) 改为如下操作后就没有报错了: WebDriverWait(driver,15,0.5).until(EC.visibility_o…
我们用Selenium打开网页后,可能需要在输入框输入一些内容等等,这时候就需要键盘操作了 使用sendKEys进行键盘操作,在bing的搜索框中输入内容并点击跳转 1 import org.openqa.selenium.By; 2 import org.openqa.selenium.Keys; 3 import org.openqa.selenium.WebDriver; 4 import org.openqa.selenium.WebElement; 5 import org.openq…
Steps:1.I was able to resolve the issue after adding the site URL under trusted sites of IE. The same worked for every other machine I tried running scripts on IE 11, forgive me if I am talking a little out of context. But that actually has worked fo…
Selenium 入门到精通系列 PS:Driver_Element 常用方法 例子 #!/usr/bin/env python # -*- coding: utf-8 -*- # @Date : 2019-04-23 16:12:33 # @Author : BenLam # @Link : https://www.cnblogs.com/BenLam/ from selenium import webdriver driver=webdriver.Firefox() driver.get("…
WebDriverException: unknown error: Element <td class="grid - select - input " stype=" ">...</td> is not clickable ai point(29,105).Other element would receive the click:<div class="el-loading-bg" stype=" &…
最近代码中发现一些bug, 在Debug过程中发现,页面元素是被定位到了,但是用getText方法取到的却是空值.调查了一下发现,getText是否返回值和isDisplayed是否为true有关.当element.isDisplayed返回false的时候,get.Text就会返回空. 但是明明页面的text是正常显示的,为什么element.isDisplayed为空呢? 这是因为当元素不是真正隐藏而是在viewport之外时,isDisplayed()方法有时可能会跳越, 从而导致 get…
1. 带unittest的脚本分析 也许你现在心里还有疑问,unittest框架与我们前面所编写的Web自动化测试之间有什么必然联系吗?当然有,既然unittest可以组织.运行测试用例,那么为什么不能组织.运行Web自动化测试用例呢?我们现在就来开始通过一个实例来看看吧. # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.…
常见几种原因与应对,详细参见http://www.blogjava.net/qileilove/archive/2014/12/11/421309.html 1,动态ID无法找到,用xpath路径解决: 2,iframe导致,用先定位frame方式解决: 3,不在一个frame里,用切换到默认的content,再定位frame,元素的方式解决: 4,xpath描述错误: 5,点击速度过快: 6,安全性不允许跨域:…
出现如下提示: 查看了网上的资料, 1.编译器选择错误 查看路径:setting→compiler Selected compiler选取你已经安装且准备使用的编译器. 2.工程创建时配置错误 查看路径:在左侧工程栏里,右键点击你要编译的文件,选择Properties选项 查看Advanced选项卡下的内容 看一下这个工程文件在创建的时候是否选择了正确的编译器. 3.路径设置错误 查看路径:setting→compiler的Toolchain executables标签. Program Fil…
Steps:1.I was able to resolve the issue after adding the site URL under trusted sites of IE. The same worked for every other machine I tried running scripts on IE 11, forgive me if I am talking a little out of context. But that actually has worked fo…
控制浏览器: http://www.cnblogs.com/moonpool/p/5657752.html…
在有了Position类和接口类之后,我们是不是立刻就要着手开始写实现类了呢?按照一般的顺序是这样.但是,我们这里先停一下.原因有二: 1)既然是写一个框架,我们希望总体的功能上是全面的.实现类中,我们需要设计和实现各种具体的操作方法.那么,如果中间出了问题,我们希望能够有所记录(log),所以需要有一个Log类. 2)既然是需要记录,我们希望能够在每次测试的测试报告中,体现该次测试操作的记录.那么,就需要对所做的测试进行监听,所以我们也需要一个监听(Listener)的类. 在写log类之前,…
Selenium-Grid 允许你在多台机器的多个浏览器上并行的进行测试,也就是说,你可以同时运行多个测试.本质上来说就是,Selenium-Grid 支持分布式的测试执行.它可以让你的测试在一个分布式的执行环境中运行. 通常,以下两种情况你都会需要使用 Selenium-Grid. ·        在多个浏览器中运行测试,在多个版本的浏览器中进行测试,或在不同操作系统的浏览器中进行测试. ·        减少测试运行时间. 最近新增了两台Windows机器,需要配置Selenium Gri…
一.介绍 selenium最初是一个自动化测试工具,而爬虫中使用它主要是为了解决requests无法直接执行JavaScript代码的问题 selenium本质是通过驱动浏览器,完全模拟浏览器的操作,比如跳转.输入.点击.下拉等,来拿到网页渲染之后的结果,可支持多种浏览器 from selenium import webdriver #导入模块,然后产生一个浏览器对象 browser=webdriver.Chrome() browser=webdriver.Firefox() browser=w…
selenium中没有直接控制滚动条的方法,可以使用方法:execute_script(),可以直接执行js的脚本. 一.竖向滚动条控制,三种方法总有一款适合你. 1.滚动条拉到最底: js="var q=document.documentElement.scrollTop=10000" driver.execute_script(js) 2.滚动条拉到最底: js="var q=document.getElementById('id').scrollTop=10000&qu…
selenium:css_selector定位详解(css selector和xpath的比较) 来源:https://www.cnblogs.com/haifeima/p/10138154.html   目录 selenium使用css selector和xpath的比较 selenium提供的定位方式(常用) 推荐的定位方式的优先级 针对css selector和xpath的优先级做一个简单的说明 定位元素的注意事项(划重点) selenium之CSS定位汇总 一:单一属性定位 二:组合属性…
selenium使用css selector和xpath的比较 selenium提供的定位方式(常用) ID NAME CLASS CSS SELECTOR XPATH   推荐的定位方式的优先级 优先级最高:ID 优先级其次:name 优先级再次:CSS selector 优先级再次:Xpath   针对css selector和xpath的优先级做一个简单的说明 在项目中我们可能用的最多的是css或者xpath,那么针对这两种,我们优先选择css,原因在哪些? 原因1:css是配合html来…
如果你还想从头学起Selenium,可以看看这个系列的文章哦! https://www.cnblogs.com/poloyy/category/1680176.html 其次,如果你不懂前端基础知识,需要自己去补充哦,博主暂时没有总结(虽然我也会,所以我学selenium就不用复习前端了哈哈哈...) Web UI自动化中,定位方式的优先级 优先级最高:ID 优先级其次:name 优先级再次:CSS selector 优先级再次:Xpath 针对css selector和xpath的优先级做一个…
如果你在跑selenium脚本时,需要某些异常不知道怎么解决时,可以看看这一系列的文章,看看有没有你需要的答案 https://www.cnblogs.com/poloyy/category/1749830.html 直译异常 No Such Element Exception:没有这个元素异常 啥情况会出现此异常 元素不存在,无法定位到 元素存在,但定位表达式有问题,没有定位到该元素 页面加载过久,元素还没加载出来,所以定位失败 如何解决此问题 原因一:元素存在 确定要找的元素是否存在页面 原…
selenium 硒 Mercury汞,外国人喜欢取这化学的名字 一.selenium概述 1.selenium是开源免费的,针对web应用程序功能自动化测试的工作. 2.做功能自动化的原因:回归测试和兼容性测试工作量大,用自动化测试提高效率 3.能功能自动化测试的条件: (1)需求稳定 (2)在缺陷少的版本上(冒烟通过)开始做自动化(3)测试周期长 4.selenium特点(优势):支持三多: (1)支持多种操作系统平台:windows,linux,Mac等 (2)支持多浏览器:IE fire…
1.简介 其实今天介绍也讲解的也是一种等待的方法,有些童鞋或者小伙伴们会问宏哥,这也是一种等待方法,为什么不在上一篇文章中竹筒倒豆子一股脑的全部说完,反而又在这里单独写了一篇.那是因为这个比较重要,所以宏哥专门为她量身定制了一篇. FluentWait是Selenium中功能强大的一种等待方式,翻译成中文是流畅等待的意思.在介绍FluentWait之前,我们来讨论下为什么需要设置等待,我们前面介绍了隐式等待和显式等待.在现在很多软件产品为了加强前端的效果,采取了大量的AJAX 和Jquery技术…
1.简介 经过宏哥长时间的查找,终于找到了一个含有iframe的网页.所以今天这一篇的主要内容就是用这个网页的iframe,宏哥给小伙伴或者童鞋们演示一下,在处理过程中遇到的问题以及宏哥是如何解决的. 2.iframe是什么 iframe就是我们常用的iframe标签:<iframe>.iframe标签是框架的一种形式,也比较常用到,iframe一般用来包含别的页面,例如我们可以在我们自己的网站页面加载别人网站或者本站其他页面的内容.iframe标签的最大作用就是让页面变得美观.iframe标…
1 简介以及安装 Selenium 是什么?一句话,自动化测试工具.它支持各种浏览器,包括 Chrome,Safari,Firefox 等主流界面式浏览器,如果你在这些浏览器里面安装一个 Selenium 的插件,那么便可以方便地实现Web界面的测试.换句话说叫 Selenium 支持这些浏览器驱动.Selenium支持多种语言开发,比如 Java,C,Ruby等等,有 Python 吗?那是必须的!哦这可真是天大的好消息啊. Selenium 2,又名 WebDriver,它的主要新功能是集成…
前言 最近在学习饿了么的Vue前端框架Element,发现其源码中大量使用了$broadcast和$dispatch方法,而Element使用的是Vue2.0版本,众所周知在Vue 1.0升级到2.0中去除了$broadcast和$dispatch方法. 所以在Element框架源码中将这两个函数重写实现了一遍,并采用的是minix的方式植入每个组件的代码中. 但是Element的这两个函数虽然与官方同名,但功能却有所差异,遂有本文,简单分析一下区别于用途. Element的broadcast功…