package Project1; import org.openqa.selenium.*; import org.openqa.selenium.WebDriver.*; import org.openqa.selenium.firefox.*; public class Project1Class { public static void main(String[] args) { //如果启动出现问题,可以使用System.setProperty指出firefox.exe的路径 //System.setProperty("webdriver.firefox.bin","D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); WebDriver diver = new FirefoxDriver(); org.openqa.selenium.support.events.EventFiringWebDriver eventDriver=new org.openqa. selenium.support.events.EventFiringWebDriver(diver); //注册事件 eventDriver.register(new MyWebDriverListener()); //打开百度页面 eventDriver.navigate().to("http://www.baidu.com"); //在搜索框中输入selenium eventDriver.findElement(By.id("kw")).sendKeys("selenium"); //单击搜索 eventDriver.findElement(By.id("su")).click(); //故意写一个错误操作,使selenium产生异常 try { eventDriver.findElement(By.id("xxxx")); } catch (Exception e){ } } } MyWebDriverListener.java文件: package Project1; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; public class MyWebDriverListener implements org.openqa.selenium.support.events.WebDriverEventListener { @Override public void beforeNavigateTo(String url, WebDriver driver) { System.out.println("页面在发生跳转前的Url为:" + driver.getCurrentUrl()); } @Override public void afterNavigateTo(String url, WebDriver driver) { System.out.println("页面在发生跳转后的Url为:" + driver.getCurrentUrl()); } @Override public void beforeNavigateBack(WebDriver driver) {} @Override public void afterNavigateBack(WebDriver driver) {} @Override public void beforeNavigateForward(WebDriver driver) {} @Override public void afterNavigateForward(WebDriver driver) {} @Override public void beforeFindBy(By by, WebElement element, WebDriver driver) { System.out.println("查找元素时的条件为:" + by.toString()); } @Override public void afterFindBy(By by, WebElement element, WebDriver driver) { System.out.println("找到元素,其条件为:" + by.toString()); } @Override public void beforeClickOn(WebElement element, WebDriver driver) { System.out.println("要单击的页面元素为:" + element.getAttribute("value")); } |