Create a AndroidDriver for the operation to be perform on android device.
Appium ListenergithubProject
AndroidDriver driver=new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap);
AndroidDriver driver=new AndroidDriver<AndroidElement>(new URL("http://127.0.0.1:4723/wd/hub"),cap);
driver = EventFiringWebDriverFactory.getEventFiringWebDriver(driver, new ActivityCapture());
We need to implement the AppiumWebDriverEventListener interface
public class ActivityCapture implements AppiumWebDriverEventListener {
public void beforeAlertAccept(WebDriver driver) {
}
public void afterAlertAccept(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterAlertDismiss(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeAlertDismiss(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateTo(String url, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateTo(String url, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateBack(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateBack(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateForward(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateForward(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateRefresh(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateRefresh(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeFindBy(By by, WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterFindBy(By by, WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeClickOn(WebElement arg0, WebDriver driver) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
Date strDate = new Date();
Calendar cal = Calendar.getInstance();
String sDate = new SimpleDateFormat("MMddyyyy").format(cal.getTime());
String screenShotName="123"+sDate+RandomStringUtils.random(6, true, false)+".png";
String screenShotPath;
try {
screenShotPath = CaptureScreenshot.capture(driver,screenShotName,StartFramework.logger);
//StartFramework.logger.log(Status.PASS, "Snapshot below: " +StartFramework.logger.addScreenCaptureFromPath(screenShotPath));
StartFramework.child.info("Clicking on element->"+arg0, MediaEntityBuilder.createScreenCaptureFromPath("./Screenshots/"+screenShotName).build());
//StartFramework.logger.info("Screenshot").addScreenCaptureFromPath(screenShotPath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
StartFramework.child.log(Status.PASS, "Getting an Exception"+e);
}
}
public void afterClickOn(WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
// TODO Auto-generated method stub
}
public void afterChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
// TODO Auto-generated method stub
}
public void beforeScript(String script, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterScript(String script, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeSwitchToWindow(String windowName, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterSwitchToWindow(String windowName, WebDriver driver) {
// TODO Auto-generated method stub
}
public void onException(Throwable throwable, WebDriver driver) {
// TODO Auto-generated method stub
}
public <X> void beforeGetScreenshotAs(OutputType<X> target) {
// TODO Auto-generated method stub
}
public <X> void afterGetScreenshotAs(OutputType<X> target, X screenshot) {
// TODO Auto-generated method stub
}
public void beforeGetText(WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterGetText(WebElement element, WebDriver driver, String text) {
// TODO Auto-generated method stub
}
public void afterChangeValueOf(WebElement arg0, WebDriver arg1) {
// TODO Auto-generated method stub
}
public void beforeChangeValueOf(WebElement arg0, WebDriver arg1) {
// TODO Auto-generated method stub
}
We need to implement the AppiumWebDriverEventListener interface
public class ActivityCapture implements AppiumWebDriverEventListener {
public void beforeAlertAccept(WebDriver driver) {
}
public void afterAlertAccept(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterAlertDismiss(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeAlertDismiss(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateTo(String url, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateTo(String url, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateBack(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateBack(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateForward(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateForward(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeNavigateRefresh(WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterNavigateRefresh(WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeFindBy(By by, WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterFindBy(By by, WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeClickOn(WebElement arg0, WebDriver driver) {
// TODO Auto-generated method stub
// TODO Auto-generated method stub
Date strDate = new Date();
Calendar cal = Calendar.getInstance();
String sDate = new SimpleDateFormat("MMddyyyy").format(cal.getTime());
String screenShotName="123"+sDate+RandomStringUtils.random(6, true, false)+".png";
String screenShotPath;
try {
screenShotPath = CaptureScreenshot.capture(driver,screenShotName,StartFramework.logger);
//StartFramework.logger.log(Status.PASS, "Snapshot below: " +StartFramework.logger.addScreenCaptureFromPath(screenShotPath));
StartFramework.child.info("Clicking on element->"+arg0, MediaEntityBuilder.createScreenCaptureFromPath("./Screenshots/"+screenShotName).build());
//StartFramework.logger.info("Screenshot").addScreenCaptureFromPath(screenShotPath);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
StartFramework.child.log(Status.PASS, "Getting an Exception"+e);
}
}
public void afterClickOn(WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
// TODO Auto-generated method stub
}
public void afterChangeValueOf(WebElement element, WebDriver driver, CharSequence[] keysToSend) {
// TODO Auto-generated method stub
}
public void beforeScript(String script, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterScript(String script, WebDriver driver) {
// TODO Auto-generated method stub
}
public void beforeSwitchToWindow(String windowName, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterSwitchToWindow(String windowName, WebDriver driver) {
// TODO Auto-generated method stub
}
public void onException(Throwable throwable, WebDriver driver) {
// TODO Auto-generated method stub
}
public <X> void beforeGetScreenshotAs(OutputType<X> target) {
// TODO Auto-generated method stub
}
public <X> void afterGetScreenshotAs(OutputType<X> target, X screenshot) {
// TODO Auto-generated method stub
}
public void beforeGetText(WebElement element, WebDriver driver) {
// TODO Auto-generated method stub
}
public void afterGetText(WebElement element, WebDriver driver, String text) {
// TODO Auto-generated method stub
}
public void afterChangeValueOf(WebElement arg0, WebDriver arg1) {
// TODO Auto-generated method stub
}
public void beforeChangeValueOf(WebElement arg0, WebDriver arg1) {
// TODO Auto-generated method stub
}