package com.gorillalogic.agents.html; import java.lang.reflect.Constructor; import org.openqa.selenium.remote.CommandExecutor; import org.openqa.selenium.safari.SafariDriver; import com.gorillalogic.agents.html.browser.BrowserType; import com.gorillalogic.agents.html.browser.SafariAdapter; import com.gorillalogic.agents.html.processor.SeleniumCommandProcessor; public class SafariAgent extends WebDriverAgent { public SafariAgent() { super(16864); } public SafariAgent(int port) { super(port); } @Override public String getName() { return "Safari"; } @Override public void start() { // TODO Auto-generated method stub try { ping(); } catch (Exception e) { // Safari Processor // scp = new SeleniumCommandProcessor(BrowserType.SAFARI, getHost(), new SafariDriver()); CommandExecutor commandExecuter; try { Class<?> executer = Class.forName("org.openqa.selenium.safari.SafariDriverCommandExecutor"); Class<?> partypes[] = new Class[1]; partypes[0] = Integer.TYPE; Constructor<?> ct = executer.getConstructor(partypes); ct.setAccessible(true); Object arglist[] = new Object[1]; arglist[0] = new Integer(16864); Object retobj = ct.newInstance(arglist); commandExecuter = (CommandExecutor) retobj; } catch (Throwable err) { throw new IllegalStateException("Unable to load WebDriverAgent: " + err); } // scp = new SeleniumCommandProcessor(BrowserType.SAFARI, getHost(), new SafariDriver()); SafariAdapter safari = new SafariAdapter(commandExecuter); // scp = new SeleniumCommandProcessor(BrowserType.SAFARI, getHost(), safari.getSafariWebDriver()); scp = new SeleniumCommandProcessor(BrowserType.SAFARI, getHost(), safari); } } }