/**     * 执行dos命令     * @param command     */    public static void command(String command) {        try {            Runtime.getRuntime().exec(command);//            process.waitFor();        } catch (IOException e) {            e.printStackTrace();…
RT 背景:一个网站的登录部分用到了selenium,但是在多次登录之后,发现进程里残留了很多的chromedriver.exe进程.项目打成jar包之后放到另外的机器上跑,发现不久之后就开始卡顿,甚至于弹不出浏览器的窗口,所以怀疑是不是因为chromedriver.exe残留进程太多导致的.而且由于个人有强迫症,所以这个决定优化一下. 原始的代码: System.setProperty("webdriver.chrome.driver", webDriverPath); WebDri…
#OS是我们操作dos系统时需要引入的库 import os #杀死这个chromedriver进程,因为每次启动都会打开,所以需要kill,这里用的chrome浏览器,打开方式时chromedriver.exe.需要放在代码同一目录下 os.system("taskkill /f /im chromedriver.exe") 或 os.system('taskkill /im chromedriver.exe /F') os.system('taskkill /im chrome.e…
操作浏览器的主要方法都来自 org.openqa.selenium.WebDriver 这个接口 这些方法都是在 org.openqa.selenium.remote.RemoteWebDriver这个类中实现的,然后不同浏览的 driver类继承RemoteWebDriver  1. 打开一个浏览器  //IE浏览器 System.setProperty("webdriver.ie.driver", ".\\Tools\\IEDriverServer.exe");…
selenium自动化测试常常用到键盘操作,一下是键盘操作的详细操作,和部分代码.截图来自于虫师的自动化相关书籍. public static void main(String[] args) throws InterruptedException { System.setProperty("webdriver.chrome.driver", "D:/chromedriver_win32/chromedriver.exe"); ChromeOptions Optio…
问题背景 观察使用selenium进行自动化测试的过程,我们可以将它概述为: 启动测试进程,在该进程中构建WebDriver 启动浏览器进程,将它与WebDriver建立连接 使用WebDriver向浏览器发送请求从而达到控制的效果 在实际的代码中,我们所需要做的只有构建WebDriver和通过WebDriver提供的接口控制浏览器这两件事情.对于后者,既然我们的目标是各浏览器的兼容,那么对于所有的浏览器,调用的WebDriver的接口都应该是一致的.所以这部分测试代码应该被共享,唯一的区别应该…
用webdriver模仿浏览器 爬取豆瓣python书单 其中运用到os 模块 作用是生成文件夹 存储爬取的信息 etree 用于xpath解析内容 详细代码如下 可用我的上一篇博客存取到excel当中 import os import time from selenium import webdriver from lxml import etree #创建文件夹 没有指定的文件夹则创建 有则跳过 root_dir = 'douban/img' if not os.path.exists(ro…
1.简介 上一篇讲解和分享了如何获取浏览器窗口的句柄,那么今天这一篇就是讲解获取后我们要做什么,就是利用获取的句柄进行浏览器窗口的切换来分别定位不同页面中的元素进行操作. 2.为什么要切换窗口? Selenium在当前页面打开了新的窗口,此时就需要跳转到新的窗口去,就需要把窗口进行切换.宏哥这里简单举例一个测试场景,你在页面A点击一个连接,会在新的tab窗口打开页面B,这个时候,你在页面B点击一个连接,会在新的tab窗口打开页面C.这种情况,在测试中经常遇到,自动化中,webdriver是如何处…
selenium是进行web自动化测试的一个工具,支持C,C++,Python,Java等语言,他能够实现模拟手工操作浏览器,进行自动化,通过webdriver驱动浏览器操作,我使用的是chrome浏览器,下载chrome  webdriver 放到python的安装目录. 参考连接: https://pypi.python.org/pypi/selenium http://selenium-python.readthedocs.io/api.html http://www.cnblogs.co…
关于selenium WebDriver 对浏览器标签页的切换,现在的市面上最新的浏览器,当点击一个链接打开一个新的页面都是在浏览器中打开一个标签页,而selenium只能对窗口进行切换的方法,只能操作,无法直观的看到页面.后来我想到selenium里的接口Actions可以模拟键盘操作,而点击键盘中的”Ctrl+Tab”组合键正好可以切换浏览器的标签页,只要将如下代码放在要操作的标签页前就可,如果有多个标签页,就多执行几次. 代码如下: import org.openqa.selenium.K…
一.操作 Linux中使用ps.awk.sh一起批量杀死所有的dotnet进程. 二.参考命令 ps -ef|grep dotnet|awk 'NR==2{print "kill "$2}'|sh 说明: NR表示行号是第二行,也就是上面的命令删除返回的第2行的.$2表示是ps进程列表中的第2列. 三.命令 所以杀死全部就是: ps -ef|grep "dotnet"|awk '{print "kill "$2}'|sh 四.如图…
1:杀死正在运行的进程:使用ps -aux|grep labor   查出进程PID 2:使用kill  PID  将进程杀死.…
在用webdriver对浏览器进行操作时,很多操作并不是那么好找,后来在朋友的推荐下可以用下面的方法来寻找针对浏览器的一些操作,函数或属性等,这样方便我们可以查找一些方法去完成我们要的操作. 下面是查看的方法: from selenium import webdriver browser = webdriver.Firefox()for key in dir(browser): print key 打印的结果如下图所示: 说明,首先要知道dir()的用法,通过查询我们可以知道解释如下: (你可以…
private void t_btn_kill_Click(object sender, EventArgs e) { int port; bool b = int.TryParse(t_txt_guardport.Text, out port); if (!b) { MessageBox.Show("请输入正确的监听端口"); return; } Process p = new Process(); p.StartInfo.FileName = "cmd.exe"…
/**     * 执行dos命令     * @param command     */    public static void command(String command) {        try {            Runtime.getRuntime().exec(command);//            process.waitFor();        } catch (IOException e) {            e.printStackTrace();…
启动浏览器 如何启动浏览器已在上篇文章中说明,这里还是以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…
环境:配置jdk.使用Eclipse(个人爱好),导入selenium-java-2.42.2.jar.selenium-java-2.42.2-srcs.jar.selenium-server-standalone-2.42.2.jar 等3个jar包 //设置chromedriver地址 System.setProperty ( "webdriver.chrome.driver" , "C:\\Program Files (x86)\\Google\\Chrome\\Ap…
selenium2 基于对象的测试,在selenium2中一共支持以下浏览器: Firefox(FirefoxDriver) IE(InternetExplorerDriver) Chrome(ChromeDriver) Opera(OperaDriver) Andriod(AndroidDriver) iPhone(IPhoneDriver) 一.Firefox浏览器测试 //打开默认路径的firefor(C:\Program Files (x86)\Mozilla Firefox\firef…
Chrome 点击下载chrome的webdriver: http://chromedriver.storage.googleapis.com/index.html 不同的Chrome的版本对应的chromedriver.exe 版本也不一样,下载时不要搞错了.如果是最新的Chrome, 下载最新的chromedriver.exe 就可以了. 把chromedriver的路径也加到环境变量里. Firefox Firefox驱动下载地址为:https://github.com/mozilla/g…
有时候我们需要验证浏览器中是否存在某个cookie,因为基于真实的cookie 的测试是无法通过白盒和集成测试完成的.WebDriver 提供了操作Cookie 的相关方法可以读取.添加和删除cookie 信息.WebDriver 操作cookie 的方法有: getCookies() 获得所有cookie 信息 addCookie(cookie_dict) 添加cookie,必须有name 和value 值 deleteAllCookies() 删除所有cookie 信息 delete…
启动脚本后报错 selenium.common.exceptions.WebDriverException: Message: 'chromedriver' executable may have wrong permissions. Please see https://sites.google.com/a/chromium.org/chromedriver/home 因为各种问题在ubuntu上chrome跑不起来,决定重装,参考别人的教程 一.安装Chrome浏览器 1.安装依赖 sudo…
搞java最烦的就是不同版本的适配问题.现分享下实测成功的案例. Firefox:4.0.1 selenium:selenium-server-standalone-2.43.1.jar 下面这个链接就有以上两个文件. http://pan.baidu.com/s/1nvD503f 火狐历史版本下载列表: http://ftp.mozilla.org/pub/firefox/releases/4.0.1/win32/zh-CN/ selenium-server-standalone-2.43.1…
前言 selenium2启动Chrome浏览器是需要安装驱动包的,但是不同的Chrome浏览器版本号,对应的驱动文件版本号又不一样,如果版本号不匹配,是没法启动起来的. 一.Chrome遇到问题 1.如果在启动chrome浏览器时候,出现如下界面,无法打开网址,那么首先恭喜你,踩到了坑,接下来的内容或许对你有所帮助 >># coding:utf-8>>from selenium import webdriver >>driver = webdriver.Chrome()…
一.Chrome浏览器的安装 对于谷歌Chrome32位版本,使用如下链接: wget https://dl.google.com/linux/direct/google-chrome-stable_current_i386.deb 对于64位版本可以使用如下链接下载: wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 下载完后,运行如下命令安装. sudo dpkg -i google-…
问题现象: shell窗口卡,换IP的登录窗,不开: 猜测: 内存耗尽 spider_url,py driver = webdriver.PhantomJS( executable_path='/usr/local/phantomjs/bin/phantomjs')driver.get(url)time.sleep(1)page_source = driver.page_sourcedriver.close() 源码 def close(self): """ Closes t…
package com.entrym.main; import java.io.File; import java.io.IOException; import org.openqa.selenium.WebDriver; import org.openqa.selenium.chrome.ChromeDriver; public class RebootRouter2 { private static final String CHROME_HOME=new File("config/chro…
前言 在一次系统迭代后用户投诉说无法成功登陆系统,经过测试重现和日志定位,最后发现是由于用户在ui上进行了某些操作后,触发了堆栈溢出异常,导致数据库里的用户登陆信息表的数据被锁住,无法释放.这个表里存放的是用户的session信息. 虽然后来解决了问题,但是数据库里这个用户登录信息表里被lock住的数据始终无法释放,这导致用户永远无法登陆成功,需要手动跑SQL把锁去掉才行. 杀掉指定进程 PostgreSQL提供了两个函数:pg_cancel_backend()和pg_terminate_bac…
一.首先下载selenium webDriver jar包,下载地址如下: http://selenium-release.storage.googleapis.com/index.html 二.下载ChromeDriver 与 Chrome浏览器,这两个要对应: Chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html 浏览器下载地址:https://www.slimjet.com/chrome/google-…
#!/bin/sh #根据进程名杀死进程 ] then echo "缺少参数:procedure_name" exit fi PROCESS=`|grep -v grep|grep -v PPID|awk '{ print $2}'` for i in $PROCESS do echo "Kill the $1 process [ $i ]" $i done 引自:http://www.fengdingbo.com/shell-stop-procedure.html…
webDriver 在测试ie 的时候会遇到很多的问题,记录下: 1.需要ie的driver驱动 需要下载 IEDriverServer.exe 并把这个驱动放在系统ie 的文件夹下 C:\Program Files\Internet Explorer 2.启动selenium 的时候需要将浏览器安全设置给取消掉 3.启动的时候还是报错提示安全保护 Exception in thread "main" org.openqa.selenium.WebDriverException: Un…