Maven 如何在jenkins中设置chrome浏览器窗口分辨率
我通过调用pom.xml文件通过Jenkins运行SeleniumWebDriver(Maven项目)脚本。我已经设置了下面提到的浏览器分辨率Maven 如何在jenkins中设置chrome浏览器窗口分辨率,maven,selenium,jenkins,selenium-webdriver,Maven,Selenium,Jenkins,Selenium Webdriver,我通过调用pom.xml文件通过Jenkins运行SeleniumWebDriver(Maven项目)脚本。我已经设置了下面提到的浏览器分辨率 driver.manage().window().maximize(); Dimension defaultSize = new Dimension(2560,1440); driver.manage().window().setSize(defaultSize); 但是,通过Jenkins运行脚本时,Chrome浏览器窗口未设置为新维度 注意:在本地
driver.manage().window().maximize();
Dimension defaultSize = new Dimension(2560,1440);
driver.manage().window().setSize(defaultSize);
但是,通过Jenkins运行脚本时,Chrome浏览器窗口未设置为新维度
注意:在本地机器中,它工作正常 Chrome不允许设置大于系统屏幕分辨率宽度的大小,问题可能在于您的情况。一些解决方法可以是最大化窗口,至少在该系统上有最大的可用窗口 而有时旧的镀铬器也会引起问题 如果仍然存在问题,则您可以通过chrome选项更改分辨率,如下所示:
chromeOptions.addArguments("window-size=1936,1056");
完整代码如下所示:-
System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("window-size=1936,1056");
WebDriver driver = new ChromeDriver(chromeOptions);
driver.get("https://www.google.co.in/");
希望对您有所帮助:)从我的问题中复制- 他的问题看起来是由两个问题引起的 1-从IDE运行mvn clean测试时,此过程在当前用户下运行。但是,当由持续集成环境运行时,流程由系统流程所有。因此,他们对资源没有相同的访问权限 2从IDE运行时,chrome将弹出。当从CI环境运行时,我假设它默认chrome以无头模式运行它不,您必须设置--headless参数,以便我现在可以工作的配置如下
public class GoogleChrome extends Base {
private static final Logger logger = LogManager.getLogger(GoogleChrome.class);
private String rootPath = System.getProperty("user.dir").replace("\\","/");
@Autowired
protected WebDriver driver;
public WebDriver startChromeDriver() {
logger.info("Chrome driver path : " + rootPath + "/../Tools/Drivers/chromedriver.exe");
System.setProperty("webdriver.chrome.driver", rootPath + "/../Tools/Drivers/chromedriver.exe");
Map<String, Object> prefs = new HashMap<String, Object>();
logger.info("Disabling Chrome's credentials service");
prefs.put("credentials_enable_service", false);
logger.info("Disabling Chrome's password manager");
prefs.put("password_manager_enabled", false);
final String regex = "^\\D*$";
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
final Matcher matcher = pattern.matcher(System.getProperty("user.name"));
boolean isHuman = matcher.matches();
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", prefs);
logger.info("Disabling Chrome's info bars");
options.addArguments("disable-infobars");
options.addArguments("--incognito");
options.addArguments("--disable-gpu");
options.addArguments("--no-sandbox");
options.addArguments("--allow-insecure-localhost");
if (isHuman){
logger.info("Chrome starting maximized - isHuman: " +isHuman + " process run by " +System.getProperty("user.name"));
options.addArguments("--start-maximized");
} else {
logger.info("Chrome starting headless - isHuman: " +isHuman + " process run by " +System.getProperty("user.name")) ;
options.addArguments("--headless");
options.addArguments("--window-size=1980,1080");
}
options.setAcceptInsecureCerts(true);
try {
logger.info("Killing Chrome browser");
Runtime.getRuntime().exec("taskkill /F /IM chrome.exe");
} catch (IOException e) {
logger.error("Task Kill IOException : " + e.getMessage());
}
logger.info("Starting Chrome browser...");
sleep(2);
driver = new ChromeDriver(options);
logger.info("Window size: "+ driver.manage().window().getSize());
driver.manage().timeouts().implicitlyWait(1, TimeUnit.SECONDS);
return driver;
}
公共类GoogleChrome扩展基础{
私有静态最终记录器Logger=LogManager.getLogger(GoogleChrome.class);
私有字符串rootPath=System.getProperty(“user.dir”).replace(“\\”,“/”);
@自动连线
受保护的网络驱动程序;
公共Web驱动程序startChromeDriver(){
logger.info(“Chrome驱动程序路径:“+rootPath+”/../Tools/Drivers/chromedriver.exe”);
System.setProperty(“webdriver.chrome.driver”,rootPath+“/../Tools/Drivers/chromedriver.exe”);
Map prefs=新的HashMap();
logger.info(“禁用Chrome的凭证服务”);
prefs.put(“凭证启用服务”,false);
logger.info(“禁用Chrome的密码管理器”);
prefs.put(“密码管理器已启用”,false);
最终字符串regex=“^\\D*$”;
最终模式=Pattern.compile(regex,Pattern.MULTILINE);
final Matcher Matcher=pattern.Matcher(System.getProperty(“user.name”);
布尔值isHuman=matcher.matches();
ChromeOptions选项=新的ChromeOptions();
选项。设置实验选项(“prefs”,prefs);
logger.info(“禁用Chrome的信息栏”);
options.addArguments(“禁用信息栏”);
选项。添加参数(“--incognito”);
options.addArguments(“--disable gpu”);
options.addArguments(“--no sandbox”);
options.addArguments(“--allow unsecure localhost”);
如果(非人类){
logger.info(“Chrome启动最大化-isHuman:“+isHuman+”进程由“+System.getProperty”(“user.name”)运行);
options.addArguments(“--start maximized”);
}否则{
logger.info(“Chrome启动headless-isHuman:+isHuman+”进程由“+System.getProperty”(“user.name”)运行);
选项。添加参数(“--headless”);
options.addArguments(“--windowsize=19801080”);
}
options.setAcceptUnsecureCerts(true);
试一试{
logger.info(“Chrome浏览器”);
Runtime.getRuntime().exec(“taskkill/F/IM chrome.exe”);
}捕获(IOE异常){
logger.error(“任务终止IOException:+e.getMessage());
}
logger.info(“启动Chrome浏览器…”);
睡眠(2);
驱动程序=新的色度驱动程序(可选);
logger.info(“窗口大小:+driver.manage().Window().getSize());
driver.manage().timeouts().implicitlyWait(1,TimeUnit.SECONDS);
返回驱动器;
}
}您是否看到任何错误?你能
Sysout
Jenkins设置的维度吗?不,脚本在Jenkins中运行得很好,没有任何错误。但问题是它需要自己的解决方案。。。。。。。(我尝试了不同的维度-)您的确切问题是什么,维度
或分辨率
?您正在执行的Dimension defaultSize=新维度(25601440)代码>获取系统输出打印LN(当前大小)编码>并将问题与Jenkins
war版本一起更新。注意:尺寸和分辨率相同……像素尺寸测量图像宽度和高度上的像素总数。分辨率是位图图像中细节的精细度,以每英寸像素(ppi)为单位进行测量。每英寸像素越多,分辨率越高。通常,分辨率较高的图像会产生更好的打印图像质量。我收到下面提到的错误->错误日志:org.openqa.selenium.ElementNotVisibleException:元素不可见(会话信息:chrome=60.0.3112.101)(驱动程序信息:chromedriver=2.28.455520(cc17746adff54984afff480136733114c6b3704b),平台=Windows NT 10.0.14393 x8664)(警告:服务器未提供任何堆栈跟踪信息)命令持续时间或超时:104毫秒生成信息:版本:'2.53.0',版本:'35ae25b1534ae328c771e0856c93e187490ca824',时间:'2016-03-15 10:43:46'系统信息:主机:'GSIPC-5063',ip:'10.153.1.45',os.name:'Windows 10',os.arch:'amd64',os.version:'10.0',java.version:'1.8.0_131'驱动程序信息:org.openqa.selenium.chrome.ChromeDriver功能[{applicationCacheEnabled=false,rotatable=false,mobileEmulationEnabled=false,networkConnectionEnabled=false,chrome={chromedriverVersion=2.28.455520(cc17746adff54984afff480136733114c6b3704b),userDataDir=C:\Windows\TEMP\scoped\U dir19204\U 27596},takesHeapSnapshot=true,pageLoadStrategy=normal,databaseEnabled=false,handlesAlerts=true,hasTouchScreen=false,version=60.0.3112.101,platform=XP,browserConnectionEnabled=false,nativeEvents=true,acceptSslCerts=true,locationContextEnabled=true,WebStorage=true,browserName=chrome,TakesScreensshot=true,javascriptEnabled=true,cssSelectorsEnabled=true,意外的AlertBehaviour=}]会话ID:94e15