博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
设置Webdriver启动chrome为默认用户的配置信息
阅读量:5050 次
发布时间:2019-06-12

本文共 3117 字,大约阅读时间需要 10 分钟。

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

如图:

a)默认用户的扩展:

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

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

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

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

版本号说明: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 {@Testpublic 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

status

status

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

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

附打开新用户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 {@Testpublic 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打开为空):

參考:

转载于:https://www.cnblogs.com/blfbuaa/p/6920176.html

你可能感兴趣的文章
学习网址
查看>>
前端表格插件datatables
查看>>
内部类
查看>>
树链剖分入门
查看>>
图解算法时间复杂度
查看>>
UI_搭建MVC
查看>>
一个样例看清楚JQuery子元素选择器children()和find()的差别
查看>>
代码实现导航栏分割线
查看>>
Windows Phone开发(7):当好总舵主 转:http://blog.csdn.net/tcjiaan/article/details/7281421...
查看>>
VS 2010打开设计器出现错误
查看>>
SQLServer 镜像功能完全实现
查看>>
Vue-详解设置路由导航的两种方法
查看>>
一个mysql主从复制的配置案例
查看>>
大数据学习系列(8)-- WordCount+Block+Split+Shuffle+Map+Reduce技术详解
查看>>
dvwa网络渗透测试环境的搭建
查看>>
Win8 安装VS2012 和 Sql Server失败问题
查看>>
过点(2,4)作一直线在第一象限与两轴围成三角形,问三角形面积的最小值?...
查看>>
java aes CBC的填充方式发现
查看>>
使用ionic cordova build android --release --prod命令打包报有如下错误及解决方法
查看>>
BZOJ 2338 HNOI2011 数矩形 计算几何
查看>>