Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 如何在jenkins中设置chrome浏览器窗口分辨率_Maven_Selenium_Jenkins_Selenium Webdriver - Fatal编程技术网

Maven 如何在jenkins中设置chrome浏览器窗口分辨率

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浏览器窗口未设置为新维度 注意:在本地

我通过调用pom.xml文件通过Jenkins运行SeleniumWebDriver(Maven项目)脚本。我已经设置了下面提到的浏览器分辨率

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