通过调用pom.xml文件运行Selenium webdriver(Maven Project)脚本通过Jenkins。我已经设置了下面提到的浏览器分辨率
driver.manage().window().maximize();
Dimension defaultSize = new Dimension(2560,1440);
driver.manage().window().setSize(defaultSize);
但是,在通过Jenkins运行脚本时,Chrome浏览器窗口未设置为新维度。
注意:在本地机器上它工作正常..
答案 0 :(得分:0)
Chrome不允许将大小设置为大于系统的屏幕分辨率宽度,问题可能出在您的情况。一些解决方法可能是最大化窗口,以至少在该系统上拥有最大的窗口。
虽然有时老chromedriver也会导致问题
如果仍然存在问题,则可以通过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 :(得分:0)
从我的问题中复制-GOCD pipeline, Selenium ChromeDriver window size is not set
他的问题似乎是由两个问题引起的,
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;
}
}