Webdriver 启动Chrome浏览器时,默认是打开一个新用户,而非默认用户。即新用户没有我们安装扩展程序。但在实际应用中,我们会须要 默认用户安装的一些扩展程序,比方对于某些js或者css样式。须要代理才干訪问成功,使用默认用户就显得尤为重要(由于你不可能在新用户在安装扩展程序再继续測试)。

如图:

a)默认用户的扩展:





在锁定chrome的任务栏打开的状态:

b) WebDriver打开的新用户的扩展:



watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbnd1eWEyMTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">



在锁定chrome的任务栏打开的状态:

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbnd1eWEyMTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

-----------------------------------------------------------------正文------------------------------------------------------------------------

版本号说明:Selenium 2.0

Chrome: 34.0.1847.116 m

系统:Windows 7 x86

解决的方法:

//设置Webdriver启动chrome为默认用户的配置信息(包含书签、扩展程序等)
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/user_name/AppData/Local/Google/Chrome/User Data");
WebDriver driver = new ChromeDriver(options);

注意:上例中user_name为 你计算机的username。

ps:网上搜的答案好多是  在路径 User_Data又加入了一个default,但经过我測试是打开的chrome仍然是新用户。

附參考代码:

说明:

(1)请保证chromedriver路径正确;

(2) status.html 中不走代理的话 js:src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js" 是无法载入成功;js载入成功,则页面的radio为选中状态。

(3)保证代理设置正常。

Browser_Chrome.java

package test;
import org.testng.annotations.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
public class Browser_Chrome {
@Test
public void test() throws InterruptedException{
System.setProperty("webdriver.chrome.driver", "D:/SETEST/selenium/chromedriver.exe");
//设置Webdriver启动chrome为默认用户的配置信息(包含书签、扩展程序等)
ChromeOptions options = new ChromeOptions();
options.addArguments("user-data-dir=C:/Users/test/AppData/Local/Google/Chrome/User Data");
WebDriver driver = new ChromeDriver(options); driver.get("D:/SETEST/selenium/status-test.html");
WebElement radio = driver.findElement(By.name("radio"));
((JavascriptExecutor)driver).executeScript("$('#radio').click();");
System.out.println(radio.isSelected());
Thread.sleep(2000);
//driver.close();
//driver.quit();
}
}

status-test.html

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
<title>status</title>
<script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" />
<body>
<h3>status</h3>
<div class="row-fluid">
<div class="span3">
<input name="user" placeholder="Disabled TextField" disabled />
</div>
<div class="span3">
<a class="btn disabled">Disabled Button</a>
</div>
<div class="span3">
<input name="radio" type="radio" id="radio" />
<input name="display" style="display:none" />
</div>
</div>
</body>
<script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
</html>

执行截图(注意扩展程序 和 radio的选中状态——F12开发人员工具——能够直接訪问js脚本)

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbnd1eWEyMTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbnd1eWEyMTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

--------------------------------------------------------------------------------------------------------------------------------------------------------

附打开新用户chrome载入失败的code和截图:

Browser_Chrome.java(载入失败的code)

package test;
import org.testng.annotations.Test;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
public class Browser_Chrome {
@Test
public void test() throws InterruptedException{
System.setProperty("webdriver.chrome.driver", "D:/SETEST/selenium/chromedriver.exe");
WebDriver driver = new ChromeDriver(); driver.get("D:/SETEST/selenium/status-test.html");
WebElement radio = driver.findElement(By.name("radio"));
((JavascriptExecutor)driver).executeScript("$('#radio').click();");
System.out.println(radio.isSelected());
Thread.sleep(2000);
//driver.close();
//driver.quit();
}
}

执行截图(载入失败。js打开为空):

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvdGlhbnd1eWEyMTc=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

參考:链接1

设置Webdriver启动chrome为默认用户的配置信息的更多相关文章

  1. selenium webdriver启动Chrome浏览器后无法输入网址的解决办法

    通过selenium webdriver启动Chrome浏览器,脚本如下: from selenium import webdriver browser = webdriver.Chrome() br ...

  2. 【记录】【3】设置bing为chrome的默认搜索引擎

    方法:设置→搜索→管理搜索引擎→其他搜索引擎→设置bing搜索的网址为  http://cn.bing.com/search?q=%s 注:search?q=%s   是必须的,否则无法将其设置为默认 ...

  3. 【Selenium专题】WebDriver启动Chrome浏览器(二)

    官方API Constructor Summary ChromeDriver() Creates a new ChromeDriver using the default server configu ...

  4. 【Selenium专题】WebDriver启动Chrome浏览器(一)

    selenium操作chrome浏览器需要有ChromeDriver驱动来协助.一.什么是ChromeDriver?ChromeDriver是Chromium team开发维护的,它是实现WebDri ...

  5. webdriver 启动chrome时加载配置

    Selenium操作浏览器是不加载任何配置的,网上找了半天,关于Firefox加载配置的多点,Chrome资料很少,下面是关于加载Chrome配置的方法:  一.加载所有Chrome配置 用Chrom ...

  6. 设置Anaconda启动jupyter的默认目录

    要解决的问题:安装好Anaconda后打开jupyter总是会自动跳到c:下的用户目录,通过以下方法可以修改其默认打开的目录 吐槽:竟然没有设置默认打开目录的选项,只能通过修改配置文件完成,让人不爽. ...

  7. 设置vue启动项目后默认显示的页面

    通过配置路由,可以设置vue项目启动后默认显示的页面.路由的path设置为path:"/",启动项目后就会显示默认的组件页面. import Vue from 'vue' impo ...

  8. python3批量统计用户电脑配置

    最近领导想统计一下用户电脑配置信息.好几百人难道让我一个一个的去弄吗? 想想还是写个程序接收一下吧. 客户端 # -*- coding: utf-8 -*- #author:Guoyabin impo ...

  9. selenium启动Chrome时,加载用户配置文件

    selenium启动Chrome时,加载用户配置文件   Selenium操作浏览器是不加载任何配置的,网上找了半天,关于Firefox加载配置的多点,Chrome资料很少,下面是关于加载Chrome ...

随机推荐

  1. [terry笔记]对人员列表文件进行数据库操作

    原文件(数据已经脱敏): staff_id,name,age,phone,dept,enroll_date1,姬建明,25,152015410,运维,2013-11-012,刘海龙,26,186184 ...

  2. 洛谷 2409 dp 月赛题目

    洛谷 2409 dp 洛谷十月月赛T1,一道有些interesting的dp题目,当时做的时候想的比较复杂,根本没有往dp的方向去想.. 非官方题解: 1.据说可以使用优先队列来处理,参见Uva119 ...

  3. [using_microsoft_infopath_2010]Chapter4 使用SharePoint列表表单

    本章概要: 1.把SharePoint列表表单转换成InfoPath可用形式 2.使用字段和控件 3.规划表单布局 4.理解列表表单的局限性

  4. ios中NSUserDefaults的使用方法

    ios中NSUserDefaults的使用方法 NSUserDefaults类提供了一个与默认系统进行交互的编程接口.NSUserDefaults对象是用来保存.恢复应用程序相关的偏好设置,配置数据等 ...

  5. [IOS]mac远程window全屏显示

    在mac自带着一个远程window的软件.这让我们远程起来很方便. 其步骤和window远程也很相似. 输入ip地址: 输入username以及password: 然后点击确定就可以. 只是.这时就出 ...

  6. ArcGIS Server 10.2 公布Oracle11g数据源的 Feature Service

    安装好arcgis server 10.2及 Desktop 而且确保 arcgis server manager 能够正常启动执行载入服务 1.Oracle 配置 安装好Oracleserver端程 ...

  7. php 设计模式之观察者模式(订阅者模式)

    php 设计模式之观察者模式 实例 没用设计模式的代码,这样的代码要是把最上面那部分也要符合要求加进来,就要修改代码,不符合宁增不改的原则 介绍 观察者模式定义对象的一对多依赖,这样一来,当一个对象改 ...

  8. linux centos下载地址

    Centos下载地址 http://r.aminglinux.com

  9. sql server 查询某个表一直显示"正在执行中..."的问题

    问题描述:只是单纯的执行了"select count(*) from 某表":数据表中只有一两条数据,能查询其他表,唯独这个表不能进行任何操作: 经百度搜索实验,发现应该是某个进程 ...

  10. RXjava的简介

    API 介绍和原理简析 1. 概念:扩展的观察者模式 观察者模式面向的需求是:举一个例子,警察在小偷实施作案的时候实施抓捕,在这一个例子中警察是观察者,小偷是被观察者.但是程序的观察者模式和这个还是有 ...