selenium java 浏览器操作

一 环境搭建

selenium 2.53

selenium-java-2.53.0.jar

selenium-java-2.53.0-srcs.jar 原代码包

拷贝的工程lib下,做build path,告诉项目jar包在lib里

关联原始代码:

jar包里都是.class文件,想看原始代码,关联源代码包,在selenium项目包右键属性,选java source attachment,选择selenium-java-2.53.0-srcs.jar。

package com.thoughtworks.selenium 源代码

package org.openqa.selenium 开源的代码

一个driver是一个浏览器实例,

selenium2.4.5-javadoc/index.html: api文档

-org.openqa.selenium.firefox 存放的是Firefox浏览器使用的类

  • --FirefoxBinary
  • --FirefoxDriver 浏览器实例
  • --FirefoxProfile 用户配置文件

构造方法重载:不同的方式构造实例

FirefoxDriver()
FirefoxDriver(Capabilities desiredCapabilities)
FirefoxDriver(Capabilities desiredCapabilities, Capabilities requiredCapabilities)
FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile)
FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities capabilities)
FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile, Capabilities desiredCapabilities, Capabilities requiredCapabilities)
FirefoxDriver(FirefoxProfile profile)
package test.selenium;

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;

public class SeleniumTest {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        WebDriver driver = new FirefoxDriver();
        driver.get("http://nvsm.cnki.net/KNS/");
        driver.close();
    }
}

如果出现打不开浏览器,地址栏不能输入,操作不了页面dom,都是selenium版本和浏览器版本不匹配。selenium更新版本比浏览器慢,不能保证支持最新的浏览器版本。selenium2.53可以支持Firefox40以下版本。

二 Webdriver基础API - 浏览器实例管理

    • -org.openqa.selenium.ie
    • --InternetExplorerDriver
      • org.openqa.selenium.chrome
      • --ChromeDriver
      • public class FirefoxDriver extends RemoteWebDriver
        public class RemoteWebDriver extends java.lang.Object implements WebDriver
      • 如果需要用的Firefox特殊的方法,需强制类型转换
      • appium和selenium用的是一套webdriver协议(多态)
    • 执行程序每次打开的都是一个全新的没有设置的Firefox浏览器,设置不会在下次生效。selenium只会在默认路径(C:\Program Files (x86)\Mozilla Firefox\firefox.exe)找Firefox,如果安装位置不在默认路径则会报找不到Firefox可执行文件的错误。
    • 举例:让selenium找的Firefox安装位置
System.setProperty("webdriver.firefox.bin","C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");
WebDriver driver = new FirefoxDriver();
driver.get("http://nvsm.cnki.net/KNS/");

举例:构造浏览器实例

FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile)

FirefoxBinary(java.io.File pathToFirefoxBinary)

FirefoxBinary ffb = new FirefoxBinary(new File("C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"));
WebDriver driver = new FirefoxDriver(ffb,null);
driver.get("http://nvsm.cnki.net/KNS/");

举例:构造浏览器实例(带配置文件的情况,利用存在的profile文件)

FirefoxProfile(java.io.File profileDir)

FirefoxProfile作用:保存用户配置信息,包括:浏览器设置信息,插件以及设置,书签和历史记录,用户名和密码,临时文件和网站数据,cookies。

cmd命令行输入:firefox.exe -ProfileManage

C:\Program Files (x86)\Mozilla Firefox>firefox.exe -ProfileManage

运行输入:%APPDATA%,打开C:\Users\PC\AppData\Roaming,所有的用户配置信息都在:C:\Users\PC\AppData\Roaming\Mozilla\Firefox\Profiles\1h1iplez.default

FirefoxProfile ffp = new FirefoxProfile(new File("C:\\Users\\PC\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\1h1iplez.default"));
WebDriver driver = new FirefoxDriver(ffp);
driver.get("http://nvsm.cnki.net/KNS/");

举例:构造浏览器实例(带配置文件的情况,自定义profile文件启动)

FirefoxProfile有3个重载的方法:

void setPreference(java.lang.String key, boolean value)

Set a preference for this particular profile.

void setPreference(java.lang.String key, int value)

Set a preference for this particular profile.

void setPreference(java.lang.String key, java.lang.String value)

Set a preference for this particular profile.

浏览器地址栏输入:about:config,设置所有的属性和插件配置

浏览器相关配置:browser

例如:设置启动默认页面:browser.startup.homepage

FirefoxProfile ffp = new FirefoxProfile();
ffp.setPreference("browser.startup.homepage", "http://nvsm.cnki.net/KNS/");    //设置启动页
ffp.setPreference("browser.startup.page", 1);    //0空白首页设置不生效  1用户自定义首页
WebDriver driver = new FirefoxDriver(ffp);    

Webdriver设置Firefox无提示默认路径下载

FirefoxProfile ffp = new FirefoxProfile();
ffp.setPreference("browser.download.dir", "C:\\");
ffp.setPreference("browser.download.folderList", 2);
// 设置浏览器默认下载文件夹 0桌面 1我的下载 2自定义
ffp.setPreference("browser.download.manager.showWhenStarting", false);
ffp.setPreference("browser.helperApps.neverAsk.saveToDisk", "application/octet-stream, application/vnd.ms-excel, text/csv, application/zip");
WebDriver driver = new FirefoxDriver(ffp);

firebug插件,网络查看资源包括静态资源和js代码加载快慢,刷新地址可生成网络布图,资源加载的时间,参数可以输出成har文件,可以用showslow打开

举例:自动收集页面加载时序图

FirefoxProfile ffp = new FirefoxProfile();
ffp.addExtension(new File("source\\firebug-2.0.17.xpi"));
ffp.addExtension(new File("source\\netExport-0.8.xpi"));
//    插件相关
ffp.setPreference("extensions.firebug.allPagesActivation", "on");    //所有页面自动开启
ffp.setPreference("extensions.firebug.net.enableSites", "true");    //网络设置成开启
ffp.setPreference("extensions.firebug.defaultPanelName","net");
ffp.setPreference("extensions.firebug.netexport.alwaysEnableAutoExport","true");
ffp.setPreference("extensions.firebug.netexport.saveFiles","true");
ffp.setPreference("extensions.firebug.netexport.defaultLogDir", "C:\\");
WebDriver driver = new FirefoxDriver(ffp);
Thread.sleep(2000);
driver.get("http://nvsm.cnki.net/KNS/");
时间: 2024-10-12 09:16:58

selenium java 浏览器操作的相关文章

Selenium+Java 浏览器操作(一)

1.获取当前url和title /*获取当前url和title*/ System.out.println("URL="+dr.getCurrentUrl()); //获取当前url System.out.println("title="+dr.getTitle()); //获取当前页面title 2.浏览器的前进,后退,刷新,跳转链接 package selenium; import java.util.Set; import java.util.concurren

selenium 常用浏览器操作API

package test; import org.openqa.selenium.By;import org.openqa.selenium.Dimension;import org.openqa.selenium.WebDriver;import org.openqa.selenium.firefox.FirefoxDriver; import net.sourceforge.htmlunit.corejs.javascript.tools.debugger.Main; public clas

selenium webdriver 浏览器操作,编码问题,鼠标操作,键盘按键操作,显示和隐式等待

'''size 返回元素的尺寸text 获取元素的文本,测试用例中的断言<a id='cp'>文本信息</a>t_attribute(name) 获取元素属性值is_displayed() 设置该元素是否用户可见''' from selenium import webdriverdriver=webdriver.Firefox()driver.get("https://www.baidu.com") #获取输入框的尺寸size=driver.find_eleme

python下selenium模拟浏览器基础操作

1.安装及下载 selenium安装: pip install selenium  即可自动安装selenium geckodriver下载:https://github.com/mozilla/geckodriver/releases Chromedriver下载:http://npm.taobao.org/mirrors/chromedriver/ 2.保存路径 将下载好的geckodriver以及Chromedriver解压到桌面,打开我的电脑,找到Python文件夹中anancode文件

Selenium Python浏览器调用:伪浏览器

WebDriver驱动介绍 因为移动端的driver目前没有接触,所以主要介绍PC端driver,PC端的driver都是基于浏览器的,主要分为2种类型: 一种是真实的浏览器driver:safari.firefox.ie.chrome等 比如:safari.firefox.ie.chrome都是通过浏览器原生组件来调用浏览器的原生API,这些driver都是直接启动并通过调用浏览器的底层接口来驱动浏览器的,因此具有最真实的用户场景模拟,主要用于进行web的兼容性测试使用. 一种是伪浏览器dri

selenium第一课(selenium+java+testNG+maven)

selenium介绍和环境搭建 一.简单介绍 1.selenium:Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Chrome等.支持自动录制动作和自动生成,Net.Java.Python等不同语言的测试脚本.Selenium 测试脚本可以在 Windows.Linux 和 Macintosh等多种平台上运行. 2.TestNG:TestNG是一个测试框架,其灵感来自JU

selenium+java+testNG+maven环境搭建

一.简单介绍 1.selenium: Selenium是一个用于Web应用程序测试的工具.Selenium测试直接运行在浏览器中,就像真正的用户在操作一样.支持的浏览器包括IE.Mozilla Firefox.Chrome等.支持自动录制动作和自动生成,Net.Java.Python等不同语言的测试脚本.Selenium 测试脚本可以在 Windows.Linux 和 Macintosh等多种平台上运行. 2.TestNG: TestNG是一个测试框架,其灵感来自JUnit和NUnit的,但引入

Selenium+Java+Eclipse 自动化测试环境搭建

一.下载Java windows java下载链接 https://www.java.com/zh_CN/download/win10.jsp 二.安装Java 安装好后检查一下需不需要配置环境变量,现在java 8已经不用配置环境变量了,直接在命令行输入:java -version 三.下载和安装Eclipse windows Eclipse下载链接 https://www.eclipse.org/downloads/ 你也可以下载绿色版 四.下载selenium,然后解压 selenium

Selenium Web 自动化 - Selenium(Java)环境搭建

Selenium Web 自动化 - Selenium(Java)环境搭建 2016-07-29 第1章 Selenium环境搭建 1.1 下载JDK JDK下载地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 1.2 安装和配置JDK 安装目录尽量不要有空格  D:\Java\jdk1.8.0_91; D:\Java\jre8 设置环境变量: “我的电脑”->右键->“