package ru.qatools.gridrouter.caps; import org.springframework.stereotype.Service; import ru.qatools.gridrouter.json.JsonCapabilities; import ru.qatools.gridrouter.json.Proxy; /** * <p> * Sets "ie.ensureCleanSession" and "ie.usePerProcessProxy" for all new * internet explorer sessions to ensure clean browser state. * </p> * <p> * Apart from that it sets the "proxy" capability to * {@link org.openqa.selenium.Proxy.ProxyType#DIRECT ProxyType.DIRECT} * because explorers tend to reuse the proxy from the previous sessions. * </p> * * @author Innokenty Shuvalov innokenty@yandex-team.ru */ @SuppressWarnings("JavadocReference") @Service public class IECapabilityProcessor implements CapabilityProcessor { private static final String IE_BROWSER_NAME = "internet explorer"; @Override public boolean accept(JsonCapabilities caps) { return caps.getBrowserName().equals(IE_BROWSER_NAME); } @Override public void process(JsonCapabilities caps) { caps.any().put("ie.ensureCleanSession", true); caps.any().put("ie.usePerProcessProxy", true); if (!caps.any().containsKey("proxy")) { Proxy proxy = new Proxy(); proxy.setProxyType("DIRECT"); caps.any().put("proxy", proxy); } } }