1. 下载图片 这个链接说得最好,差不多所有可能的方法都列举了,除了没有提到用URLDownloadToFile,不过这和用WebClient差不多. https://stackoverflow.com/questions/18424624/using-selenium-to-save-images-from-page/48871283 2. 完全退出selenium 一般情况下,用webdriver的Quit方法就可以了.但是某些情况下,也有可能没用.这时,就只能杀进程了. 有意思的是,IEW…
本文档以谷歌浏览器为例,故自动化测试环境为下: 自动化工具为:selenium+webdriver 脚本语言为:Python3.X 浏览器:Chrome 系统环境:Win10 编译工具:Pycharm 具体搭建步骤如下: 一.安装Python 下载Python3.6.5 https://www.python.org/downloads/windows/ 下载完成后双击打开 点击运行按钮 安装界面,勾选Add Python3.6 to PATH,选择Customize installation 点…
上个帖子简要讨论了浏览器自动化的几种方法.现在讨论webBrowser控件使用中的一些问题.基本的操作就不详细说了,随便网上找个帖子或找本书都有介绍的.这里只写点网上似乎少有人总结过的内容,以及自己的一些实践体会. 1.ajax 首先,DocumentCompleted事件对于ajax无能为力,因为这个事件不能处理网页加载完成后执行javascript发出ajax请求.网上可以找到的方法,主要有两种,一种是利用onpropertychange事件,随便找了个参考链接:https://social…
发现浏览器自动化有一个重要方面没有提及,即所谓的无页面浏览器,不过最近没有需求,不想尝试,先记上一笔,以后有需求时,可以有个思路. 大约一两个月前(现在比较懒散,时间不知不觉过去,连今天是几号有时候都搞糊涂),碰到一个问题,本来程序中用WebBrowser控件访问一个页面,现在那个页面用Angular重写了,访问出错,出来一个空白页面. 1.解决方案一是改注册表,修改webBrowser控件所模拟的IE版本,缺省是7,不支持Angular,改成高版本,如11,就可以了. 但是有个问题,只能在第一…
1. 一般需要执行这一句:webBrowser1.ScriptErrorsSuppressed = true; 主要目的是禁止跳出javascript错误的对话框,否则会导致程序无法正确地跑下去.缺点显然是某些真正的javascript错误被掩盖了.但是实践中觉得多数情况下,这一句是有必要的. 2. 解析dom webBrowser控件提供了一些解析dom的方法,如webBrowser1.Document.GetElementById().这些方法在处理某些结构较为复杂的dom时会显得不太方便,…
WebBrowser控件最大的优点是可以轻松嵌入win form程序中,但是微软好像对这个控件没什么兴趣,这么多年了还没有改进,结果造成一堆问题. 1. 不支持https 2. 缺省模拟ie 7,如果要模拟其他ie版本就得修改注册表,但是修改注册表会带来其他的问题.具体在另外一个帖子里讨论过了:https://www.cnblogs.com/badnumber/p/11087619.html 3. 即使通过修改注册表,可以模拟高版本的ie,还是会有其他问题,因为这毕竟和真的高版本ie不一样.今天…
这里谈两点 1.支持代理服务器切换 一种方法是修改注册表,不是太好的做法,而且,只能改全局设置,不能改局部(比如只让当前的webBrowser控件使用代理,而其他应用不用代理) 另外一个较好的方法,示例代码可以从这里下载:https://code.msdn.microsoft.com/windowsapps/CSWebBrowserWithProxy-c8535715 这个代码来自msdn,自然很权威,也确实很不错,即使不熟悉pinvoke的操作也可拿来用.美中不足的是这个代码缺少禁用代理服务器…
原来的代码大致如下: private void foo(string url) { using (WebClient client = new WebClient()) { client.DownloadProgressChanged += (obj, ev) => { client.CancelAsync(); }; client.DownloadStringCompleted += (obj, ev) => { ................ Thread.Sleep(30000); b…
前面说过了,httpWebRequest的好处在于轻量,不需要界面,缺点在于无法执行javascript.这里再归纳一些问题. 1. 设置代理 1) httpWebRequest不支持https的代理,也就是说用不了某些vpn,你懂的. 2) 一般的写法: HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url); request.Proxy = new WebProxy(proxyUrl, true); //如:http:/…
从winform访问webBrowser,大致就是利用webBrowser提供的解析dom的方法以及用InvokeScript方法执行javascript.这个相对比较简单. 从webBrowser访问winform,归纳出来大致4种办法: 1.利用webBrowser的Navigating事件 网页里的javascript代码: window.location.href='close'; winform里的代码: private void webBrowser1_Navigating(obje…
1. DocumentCompleted的多次执行问题 有的网页,会多次触发DocumentCompleted事件,由于它是异步的,不会阻塞,所以如果不恰当处理,会造成某些代码被错误地多次执行,造成意想不到的结果. 我一般的做法,是定义一个全局变量(winform里form的成员变量),如下面代码所示: private string _type; private void button1_Click(object sender, EventArgs e) { _type = "test"…
转载自:http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏览器进行操作. Java代码 import java.io.File; import org.openqa.selenium.WebDriver; importorg.openqa.selenium.firefox.FirefoxBinary; importorg.openqa.selenium.f…
[From] http://blog.csdn.net/xiao190128/article/details/49784121 1.打开一个测试浏览器 对浏览器进行操作首先需要打开一个浏览器,接下来才能对浏览器进行操作. Java代码 import java.io.File; import org.openqa.selenium.WebDriver; importorg.openqa.selenium.firefox.FirefoxBinary; importorg.openqa.seleniu…
前言 上一篇文章<selenium webdriver 是怎么运行的>用了一个简单的例子--搭出租车,形象地讲解selenium webdriver 是如何运行的,而这一篇文章可以理解为深入了解selenium是如何和浏览器驱动进行交互,也可以认为是乙醇老师写的<selenium是如何启动浏览器的> 文章的2.0版本 . 环境准备: python 3.0以上 selenium 3.0以上 浏览器 Chrome 浏览器驱动 ChromeDriver 接口测试工具 小编的环境: pyt…
一.java+selenium+firefox 1.环境准备:JDK1.8 2.安装firefox浏览器v59 3.下载驱动:https://github.com/mozilla/geckodriver/releases 4.selenium依赖pom.xml导入:https://mvnrepository.com/artifact/org.seleniumhq.selenium/selenium-java selenium 历史版本镜像下载地址:https://npm.taobao.org/m…
selenium可以用来完成浏览器自动化相关的操作,写一些代码制定一些基于浏览器自动化的相关操作(行为动作),当代码执行后,浏览器就会自动触发相关的事件 安装方法: pip install selenium 下载对应浏览器的驱动程序 谷歌浏览器驱动下载地址: https://chromedriver.storage.googleapis.com/index.html https://npm.taobao.org/ 根据浏览器版本选择对应的驱动版本(网上查) 代码流程: 导入模块:from sel…
摘:http://www.cnblogs.com/dream0577/archive/2012/10/07/2714579.html /**       用IE驱动,1.先到官网下载IEDriverServer.exe,2.在代码设置属性 3.在代码设置忽略IE保护模式,4.import org.openqa.selenium.remote.DesiredCapabilities;       */       System.setProperty("webdriver.ie.driver&qu…
Selenium WebDriver + Grid2 + RSpec之旅(六) ----多浏览器的并行执行 由于浏览器的发展,浏览器种类繁多.为了保证系统能在各种浏览器上叱咤风云,减少测试人员的测试工作量,就要保证测试脚本支持多浏览器,但是一条测试用例逐个对浏览器进行执行的话又会消耗太多的时间,下面就介绍一下多浏览器并行执行的方法. 再回头看一下前面介绍过的测试用例脚本,会发现测试用例中的浏览器是指定的firefox,如果要测试IE,CHROME浏览器,去修改测试用例脚本?还是把脚本复制几份?方…
启动浏览器 如何启动浏览器已在上篇文章中说明,这里还是以chrome为例,firefox.IE启动方式相同. //启动浏览器 import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; /*启动IE需要的包 import org.openqa.selenium.ie.InternetExplorerDriver; 启动firefox需要的包 import org.openqa.sele…
通过selenium webdriver启动Chrome浏览器,脚本如下: from selenium import webdriver browser = webdriver.Chrome() browser.get("http://www.baidu.com") browser.find_element_by_id("kw").send_keys("selenium")browser.find_element_by_id("su&q…
通过selenium webdriver启动IE浏览器失败,报错:selenium.common.exceptions.WebDriverException: Message: Unexpected error launching Internet Explorer. Protected Mode settings are not the same for all zones. Enable Protected Mode must be set to the same value (enable…
selenium webdriver 启动三大浏览器Firefox,Chrome,IE 1.安装selenium 在联网的情况下,在Windows命令行(cmd)输入pip install selenium即可自动安装selenium,安装完成后,输入pip show selenium可查看当前的selenium版本. 2.安装三大浏览器驱动driver 1.chromedriver的驱动chromedriver 2.Firefox的驱动geckodriver 3.IE的驱动IEdriver 下…
说明: 在做selenium webdriver  在做UI 自动化时,有些页面时使用懒加载的形式显示页面图片,如果在不向下移动滚动条时,获取到的图片会是网站的默认图片和真实的图片不相符. 所以研究了下如何去移动页面滚动条 通过度娘搜索网上的解决方法 方法一.  ------- 在我这没有成功,不知道是否和我使用chrome 有关 #将页面滚动条移动到页面任意位置,改变等于号后的数值即可 js="var q=document.documentElement.scrollTop=50"…
目前由于phantomjs已经不维护了,而新版的Chrome(59+)推出了Headless模式,对爬虫来说尤其是定时任务的爬虫截屏之类的是一大好事. 不过按照网络上的一些方法来写的话,会报下面的错误: 后来经过分析,他们运行python是在mac或者linux下进行的,win下由于高版本的chromedriver只能通过路径进行指定,所以会出现这类找不到驱动程序的错误. 经过比对常识网络上的各种代码,后来得出了win下可顺畅执行的driver的写法如下: from selenium impor…
关于selenium WebDriver 对浏览器标签页的切换,现在的市面上最新的浏览器,当点击一个链接打开一个新的页面都是在浏览器中打开一个标签页,而selenium只能对窗口进行切换的方法,只能操作,无法直观的看到页面.后来我想到selenium里的接口Actions可以模拟键盘操作,而点击键盘中的”Ctrl+Tab”组合键正好可以切换浏览器的标签页,只要将如下代码放在要操作的标签页前就可,如果有多个标签页,就多执行几次. 代码如下: import org.openqa.selenium.K…
有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的.WebDriver 提供了操作Cookie 的相关方法可以读取.添加和删除cookie 信息.WebDriver 操作cookie 的方法有: getCookies() 获得所有cookie 信息 addCookie(cookie_dict) 添加cookie,必须有name 和value 值 deleteAllCookies() 删除所有cookie 信息 delete…
描述 本文主要是针对Chrome 62 , firefox57 ,和IE11 三个版本的操作.相关的driver .可点击以下链接.所有的driver 建议放在浏览器的目录下,本文中所有的driver都放置在对应的浏览器根目录下. https://files.cnblogs.com/files/linxinmeng/IE11_win10_3.5.zip https://files.cnblogs.com/files/linxinmeng/Firefox57_win10_java1.8.zip h…
1. IE浏览器,需要配合下载IEDriverSever.exe的驱动程序,目前selenium支持IE9以上. (驱动程序下载链接:https://pan.baidu.com/s/1YpaUsIs128znSOBQmHdzWw 密码: mxfq). 访问搜狗主页的脚本: #VisitSogouByIE.py 访问搜狗主页例子 #encoding=utf-8 from selenium import webdriver import unittest class VisitSogouByIE(u…
学习目的: 掌握显示等待 掌握二次封装 正式步骤: step1:显示等待的代码示例 # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait import time import os dr = webdriver.Chrome() url = 'http://renren.com/' dr.get(url) # dr 表示打卡浏览器…
学习目的: 了解WebDriver的高级应用 正式步骤: 测试Python3代码 # -*- coding:utf-8 -*- from selenium import webdriver from selenium.webdriver import ActionChains from selenium.webdriver.support.ui import Select from selenium.webdriver.common.keys import Keys from selenium.…