前段时间接触了selenium,开始使用selenium IDE来进行验证测试,可是有个用例怎么都没法获取到element,换了XPATH,CSS等都失败了。折腾了很久,最终在群里问了大神云层,大神建议使用selenium2也就是WebDriver,而且给我提供了个视频的连接,今后我也走上了跟webdriver亲密接触的康庄大道。web
找来My Eclipse,JDK,firefox,selenium standalone搭了个环境,拿百度页面试水,果真不出我所料,编译不经过,一堆报错,以下是到执行成功所经历的错误:面试
一、找不到firefox。测试
缘由:机器破,我把firefox装到了D盘,因此....firefox
解决:最好装到C盘,若是已经做死了,那就写上以下代码帮助找到你的firefox。code
System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");视频
二、JDK版本低ip
缘由:检查后发现我装了JDK1.6,版本低了。element
解决:再装个JDK1.7,经过添加到Libraries里就OK了。selenium
三、selenium standalone版本过高编译
缘由:......
解决:下载个slenium standalone的jar包,再关联
四、firefox版本过高
缘由:可怕的版本问题
解决:下载了firefox32.0.1的版本,自定义安装,装的时候不安装更新模块,今后无忧了。
五、click无效
缘由:估计是找不到元素
解决:百度了几种方法,尝试了下,发现经过传送ENTER键的方法有效,以下为代码:
driver.findElement(By.id("kw")).sendKeys(Keys.ENTER);
所有代码以下:
import org.openqa.selenium.By; import org.openqa.selenium.Keys; import org.openqa.selenium.WebDriver; import org.openqa.selenium.firefox.FirefoxDriver; public class Basic { public static void main(String[] args){ //配置firefox的所在目录 System.setProperty("webdriver.firefox.bin", "D:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe"); //新建一个WebDriver的类 WebDriver driver = new FirefoxDriver(); //调用firefox打开百度页面 driver.navigate().to("https://baidu.com.cn"); //在搜索框中输入中国 driver.findElement(By.id("kw")).sendKeys("中国"); driver.findElement(By.id("kw")).sendKeys(Keys.ENTER); //以下为click无效的另外一种方法,可是没起到做用 //driver.findElement(By.id("su")).findElement(By.xpath("..")).click(); //driver.findElement(By.id("su")).click(); } }