Selenium问题总结】的更多相关文章

一.前言 在上一篇博文中,我们的爬虫面临着一个问题,在爬取Unsplash网站的时候,由于网站是下拉刷新,并没有分页.所以不能够通过页码获取页面的url来分别发送网络请求.我也尝试了其他方式,比如下拉的时候监控http请求,看看请求是否有规律可以模拟.后来发现请求并没有规律,也就是不能够模拟http请求来获取新的数据(也可能是我水平有限,哪位童鞋找到了规律一定要告诉我哦).那么就只有模拟下拉操作了. 想要模拟下拉操作,我们需要用到两个工具,一个是PhatomJs,一个是Selenium. Pha…
 Page Object Model 简称POM  普通的测试用例代码: .... #测试用例 def test_login_mail(self): driver = self.driver driver.get("http://mail.126.com") driver.find_element_by_id("idInput").clear() driver.find_element_by_id("idInput").send_keys(&qu…
Selenium webdriver是完全模拟用户在对浏览器进行操作,所有用户都是在页面进行的单击.双击.输入.滚动等操作,而webdriver也是一样,所以需要我们指定元素让webdriver进行单击.双击.输入等操作,所以元素定位是UI自动化测试的前提条件.可以联想到之前说的页面经常变动的项目为什么不适合进行UI自动化测试,如果元素一直在变动,你就要不停的修改代码,维护工作量太大,投入产出比就太低了. Selenium提供了8种定位方式: l Id l Name l Tag name l X…
什么是自动化测试? 自动化测试分为:功能自动化和性能自动化 功能自动化即使用计算机通过编码的方式来替代手工测试,完成一些重复性比较高的测试,解放测试人员的测试压力.同时,如果系统有不份模块更改后,只要通过修改部分代码的方式来覆盖这部分修改的内容,大大提高测试效率.但是后期代码维护需要一定的成本,如果系统属于表单比较多或者经常修改改动的系统不太适合使用自动化,因为这个维护成本太高:针对于一些相对比较成熟(改动不是很频繁)的系统和跑回归测试的系统很适合进行自动化测试. 性能自动化即使用性能测试工具(…
from selenium import webdriver     *固定开头     b=webdriver.Firefox()              *打开火狐浏览器    browser.quit()                     *退出火狐浏览器    b.get('http://www.baidu.com')      *打开一个网页    判断 url  (a.current_url),a.title  /找元素方式,          ele.clear()    …
前提:我用selenium IDE录制脚本,我用java写的脚本,如果大家想看的清楚明白推荐java/Junit4/Webdriver 我用的是java/TestNG/remote control 1.当编写完脚本的时候编译的时候提示java.lang.noclassdeffounderror:com/google/xxxxx错误的时候 解决方式:右键你的项目,选择属性,点击java build path 添加selenium-server-standard.jar 当然之前应该已经导入了sel…
第一.需要录制脚本,找个我也不说了.就是在firefox下下载一个selenium-IDE并且安装. 第二.在工具里找到selenium-IDE点击运行. 第三.默认是红色按钮点击状态的,接下来随便你在firefox里怎么操作了,他都会记录下来. 但是这里有一个问题,selenium只能重现在单页面的操作,倘若你的操作导致打开了一个新窗口网页,那么就无法进行重现了.但是脚本可以实现. 第四.保存(可有可无的操作),输出,按照自己喜欢的来,精通的来,我选择的是java/testNG 第五.为了录制…
1. Python2安装 官方网站:https://www.python.org/downloads/ (python3或新版本已经默认集成了pip包和path,安装的时候打勾就行,可以直接跳过下面第2步的pip的安装过程,直接跳到第三步) 下载最新版本的 Python2,安装过程与其它 Windows 程序一样,安装完成在开始菜单中将看到安装好的 Python 目录: 打开 Python 自带的编辑器 IDLE 就可以编写 Python 程序了: 或者通过在 Windows 命令提示符下输入“…
1. 安装python, www.python.org. 下载最新的python,应该是32位的.注意配置环境变量. 2. 安装PIP(pip是一个以Python计算机程序语言写成的软件包管理系统). 进入到安装包里面执行以下命令: python setup.py install 命令列界面 pip的其中一个主要特点就是其方便使用的命令列界面,这让使用者可以透过以下的一句文字命令来轻易地安装Python软件包: pip install some-package-name 此外,使用者也可以轻易地…
<!--test.html--> <html> <head> <title>Set Timeout</title> <script> </script> </head> <body> <input type="text" name="lastname"> <input id = "alert" value = "…
import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.Firef…
一.单个元素的定位方式: By.className(className))By.cssSelector(selector)By.id(id)By.linkText(linkText)By.name(name)By.partialLinkText(linkText)By.tagName(name)By.xpath(xpathExpression) 例子如下: public static void main(String[] args) { WebDriver driver = new Firefo…
import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.firefox.FirefoxDriver; import org.openqa.selenium.firefox.FirefoxProfile; import org.openqa.selenium.ie.InternetExp…
Selenium WebDriver 用于模拟浏览器的功能,可以做网站测试用,也可以用来做crawler.我是用eclipse开发的,导入selenium-server-standalone-***.jar(Right click project -->Properties --> Java Buid Path --> Libraries --> Add External Jar...).这个包可以在Selenium官网下载. 下面的代码是简单的跟一个网站做交互: public c…
由于最近发现咨询火狐浏览器打不开的问题比较多,现罗列几点解决办法. 1,由于selenium更新3.0的原因导致不在默认支持火狐浏览器,且支持的火狐浏览器大概在45以上的版本,所以很多都由于这个原因导致selenium在运行时打不开浏览器. 解决办法有两种: 1).     可继续使用selenium2.x的版本,但是随着selenium及火狐的不断更新,时间久了始终会有点坑的.但是目前能解决,selenium2.53.6默认支持火狐47及47以下的浏览器. python更新selenium的版…
pip --default-timeout=1000 install -U selenium…
Xpath in selenium is close to must required. XPath is element locator and you need to provide xpath during selenium test script creation. You need to provide any element locator(like id, name, css path, xpath etc.) in target column of selenium IDE so…
这几天在学selenium,大头虾的我.安装环境还是遇到了挺多问题,赶紧来记录下.不然下次又...(参考虫师的<Selenium2 Java自动化测试实战>),就随便写写加深下自己的印象. 1.安装java 访问java官网下载jdk http://www.oracle.com/technetwork/java/javase/downloads/index.html 下载自己需要的版本,我现在使用的是jdk-8u101-windows-x64.exe java环境分JDK和JRE,JDK就是J…
1.怎么 判断元素是否存在? 判断元素是否存在和是否出现不同, 判断是否存在意味着如果这个元素压根就不存在, 就会抛出NoSuchElementException 这样就可以使用try catch,如果catch到NoSuchElementException 就返回false 2.如何判断元素是否出现? 判断元素是否出现,存在两种情况,一种是该元素压根就没有,自然不会出现:另外一种是有这样的元素,但是是hidden状态 可以通过先判断是否存在,如果不存在返回false:如果存在再去判断是否dis…
结合上次研究的selenium webdriver potocol ,自己写http request调用remote driver代替selenium API selenium web driver Json protocol 相关请看 http://www.cnblogs.com/tobecrazy/p/5020741.html 我这里使用的是Gson 和 httpclient 首先,起一个remote sever java -Dwebdriver.ie.driver="IEDriverSer…
之前已经写过一篇: selenium测试框架篇,页面对象和元素对象的管理 上次使用的excel作为Locator对象管理,由于excel处理不够方便,有以下缺点: 不能实现分page 加载Locator对象 不能够实现Locator对象重名 文件比较大,读写速度没有xml快 所以,重新写了使用dom4j操作xml,使用xml管理Locator对象,能够有效解决以上问题 首先,定义Locator文件 <?xml version="1.0" encoding="UTF-8&…
之前的测试框架:http://www.cnblogs.com/tobecrazy/p/4553444.html 配合Jenkins可持续集成:http://www.cnblogs.com/tobecrazy/p/4529399.html 在测试框架中使用Log4J 2 :http://www.cnblogs.com/tobecrazy/p/4557592.html 首先介绍一下grid ,selenium grid 是一种执行测试用例时使用的包含不同平台(windows.Linux.Androi…
前期已经做好使用Jenkins做buildhttp://www.cnblogs.com/tobecrazy/p/4529399.html 做自动化框架,不可避免的就是对象库. 有一个好的对象库,可以让整个测试体系: 更容易维护 大大增加代码重用 增加测试系统的稳定性 这里先了解一下我所说的对象库: 所谓的页面对象,是指每一个真是的页面是一个对象. 比如zhihu的登陆页面是一个页面对象,http://www.zhihu.com/#signin 这个页面对象主要包含一个输入邮箱的输入框(一个元素对…
首先感谢Lakshay Sharma 大神的指导 最近一直在研究selenium webdriver右键菜单,发现selenium webdriver 无法操作浏览器右键菜单,如图 如果我想右键另存为,根本操作不了. 也有在网上看到webdriver right click option的一些代码,拿来用发现不能用的. Actions act = new Actions(driver); WebElement link = driver.findElement(By.id("xpath"…
package baidu; import java.io.File; import java.io.IOException; import java.util.List; import org.apache.commons.io.FileUtils; import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.OutputType; import org.openqa.se…
在验证某些关键步骤时,需要截个图来记录一下当时的情况 Webdriver截图时,需要引入 import java.io.File; import java.io.IOException; import org.apache.commons.io.FileUtils; import org.openqa.selenium.OutputType; import org.openqa.selenium.TakesScreenshot; 截图方法 public static void snapshot(…
selenium获取input时候,发现type=”hidden” 的input无法修改value,经牛人指点,可以使用js修改 首先html源文件如下,设置为text .hidden.submit <html> <head> <title>this is a test </title> <script type="text/javascript"> function display_alert() { alert("…
经过漫长的等待,终于迎来了selenium 3.0 从selenium 1.0 至今,差不多有十多年的历史.这个月终于迎来了selenium3.0 那么selenium3.0 为我们带来了什么? 看一下changelog怎么写的: v3.0.0-beta2 ============ * maven packaging fixes * Update GeckoDriver --port argument in all bindings * System property webdriver.fir…
selenium作为一个出色的web automation框架,被越来越多的企业采用究其原因,框架设计的比较remarkable, 作为一个开源的框架,能够开辟出一套协议,以至于针对app测试的appium采取相同的strategy.使用的是webdriver protocol的扩展版. 为什么说这个框架设计的比较好?究竟好在哪里? 先从表面上看: selenium automation framework 支持多语言,java.python.c#.JavaScript.Perl.ruby ..…
package demo; import java.util.concurrent.TimeUnit; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; public class HomePage { public String base_url = "https://www.baidu.com/"; public Web…