Selenium2.0中使用WeDriver<wbr>API对页面进行操作,它最大的优点是不需要安装一个selenium<wbr>server就可以运行,但是对页面进行操作不如selenium1.0的Selenium<wbr>RC<wbr>API那么方便。</wbr></wbr></wbr></wbr>
Selenium2.0提供了使用Selenium<wbr>RC<wbr>API的方法:</wbr></wbr>
<wbr><wbr>/</wbr></wbr>/<wbr></wbr>我用火狐浏览器作为例子
<wbr><wbr>WebDriver<wbr>driver<wbr>=<wbr>new<wbr>FirefoxDriver();<wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr></wbr></wbr><wbr></wbr>String<wbr>baseUrl<wbr>="http://www.google.com";<wbr></wbr></wbr></wbr>
<wbr><wbr></wbr></wbr><wbr></wbr>Selenium<wbr>selenium<wbr>=<wbr>new<wbr>WebDriverBackedSelenium(driver,<wbr>baseUrl);</wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr><wbr></wbr></wbr><wbr></wbr>//<wbr></wbr>执行selenium命令
<wbr><wbr></wbr></wbr><wbr></wbr>selenium.open("http://www.google.com");
<wbr><wbr></wbr></wbr><wbr></wbr>selenium.type("name=q",<wbr>"cheese");</wbr>
<wbr><wbr></wbr></wbr><wbr></wbr>selenium.click("name=btnG");
<wbr></wbr>
<wbr><wbr></wbr></wbr><wbr></wbr>WebDriver<wbr>driverInstance<wbr>=<wbr>((WebDriverBackedSelenium)selenium).getUnderlyingWebDriver();</wbr></wbr></wbr>
<wbr><wbr></wbr></wbr><wbr></wbr>selenium.stop();
<wbr></wbr>
分别使用WebDriver<wbr>API</wbr>和SeleniumRC<wbr>API</wbr>写了一个Login的脚本,很明显,后者的操作更加简单明了。
(1)WebDriver<wbr>API<span style="font-family:宋体; word-wrap:normal; word-break:normal; line-height:21px">写的</span><span style="font-family:Calibri; word-wrap:normal; word-break:normal; line-height:21px">Login</span><span style="font-family:宋体; word-wrap:normal; word-break:normal; line-height:21px">脚本:</span></wbr>
<wbr><wbr><wbr><wbr>public<wbr>void<wbr>login()<wbr>{</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>driver.switchTo().defaultContent();</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>driver.switchTo().frame("mainFrame");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>WebElement<wbr>eUsername=<wbr>waitFindElement(By.id("username"));</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>eUsername.sendKeys(manager@ericsson.com);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>WebElement<wbr>ePassword=<wbr>waitFindElement(By.id("password"));</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>ePassword.sendKeys(manager);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>WebElementeLoginButton<wbr>=<wbr>waitFindElement(By.id("loginButton"));</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr>eLoginButton.click();</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr>}</wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr></wbr></wbr></wbr></wbr>
(2)SeleniumRC<wbr>API<span style="font-family:宋体; word-wrap:normal; word-break:normal; line-height:21px">写的</span><span style="font-family:Calibri; word-wrap:normal; word-break:normal; line-height:21px">Login</span><span style="font-family:宋体; word-wrap:normal; word-break:normal; line-height:21px">脚本:</span></wbr>
<wbr><wbr><wbr><wbr>public<wbr>void<wbr>login()<wbr>{</wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>selenium.selectFrame("relative=top");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>selenium.selectFrame("mainFrame");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>selenium.type("username","manager@ericsson.com");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>selenium.type("password","manager");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>selenium.click("loginButton");</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
}