gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 03:10:27 29 4
gpt4 key购买 nike

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

driver.manage().window().maximize();
Dimension defaultSize = new Dimension(2560,1440);
driver.manage().window().setSize(defaultSize);

但是,在通过 Jenkins 运行脚本时,Chrome 浏览器窗口未设置为新尺寸。

注意:在本地机器上它工作正常..

最佳答案

从我的问题中复制 - GOCD pipeline, Selenium ChromeDriver window size is not set

他的问题看起来是由两个问题引起的,

1- 当 mvn clean test 从 IDE 运行时,此进程在您当前的用户下运行。但是,当由持续集成环境运行时,该进程归系统进程所有。所以没有相同的资源访问权限。

2 当从 IDE 运行时,chrome 会弹出。当从 CI 环境运行时,我假设它默认 chrome 以 headless 模式运行。 它不会,您必须设置 --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;
}

关于maven - 如何在 jenkins 中设置 chrome 浏览器窗口分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45792369/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com