Below code is running successfully in normal mode but it is throwing following error when I run in headless mode
org.openqa.selenium.ElementNotInteractableException: element not interactable: link has no size and location
My understanding is when I use ZAP proxy in headless mode, it is throwing this error. It is running successfully in normal mode.
My code:
private static final String ZAP_PROXYHOST = "localhost";//127.0.0.1
private static final int ZAP_PROXYPORT = 8080;
private static final String API_KEY = ""; // disable API key in ZAP settings
public static ScanningProxy zapScanner;
DesiredCapabilities capabilities=new DesiredCapabilities() ;
Proxy proxy = new Proxy();
proxy.setHttpProxy(ZAP_PROXYHOST + ":" + ZAP_PROXYPORT);
proxy.setSslProxy(ZAP_PROXYHOST + ":" + ZAP_PROXYPORT);
zapScanner = new ZAProxyScanner(ZAP_PROXYHOST, ZAP_PROXYPORT, API_KEY);
zapScanner.clear();
capabilities.setCapability(CapabilityType.ACCEPT_INSECURE_CERTS, true);
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
String browserName = ConfigReader.prop.getProperty("browser");
if (browserName.equals("chrome")) {
WebDriverManager.chromedriver().setup();
ChromeOptions options = new ChromeOptions();
options.addArguments("--headless");
options.addArguments("--proxy-auto-detect");
options.addArguments("--no-sandbox");
options.addArguments("--incognito");
options.addArguments("--start-maximized");
options.addArguments("--window-size=1920,1100");
options.addArguments("--ignore-certificate-errors");
options.addArguments("--disable-gpu");
options.addArguments("--disable-dev-shm-usage");
options.setProxy(proxy);
options.merge(capabilities);
setDriver(new ChromeDriver(options));
}