自动化测试—Selenium RC配置相关

来源:互联网 发布:cpu风扇转速软件 编辑:程序博客网 时间:2024/05/29 19:01

1、安装eclipse
2、导入Junit4.jar.
3、导入selenium-java-3.0.1.jar,selenium-server-standalone-3.0.1.jar
导入selenium-server-standalone-2.53.0.jar(导入这个jar包是因为,如果导出Test Case的时候选择了Java Junit4 Remote Control,会有一些引用的包无法引用,具体的原因不明。。。可能是包里的类不同的原因,有些方法被废掉了)
4、启动selenium服务。
我选择了一个省事的方法,selenium服务的jar包的文件目录下,新建一个.bat的文件,里面写上java -jar selenium-server-standalone-2.53.0.jar
之后双击运行就可以了。(在CMD里执行这个命令不知道为什么不成功)
5、测试

import org.openqa.selenium.By;  import org.openqa.selenium.WebDriver;  import org.openqa.selenium.WebElement;  import org.openqa.selenium.firefox.FirefoxDriver;  import org.openqa.selenium.support.ui.ExpectedCondition;  import org.openqa.selenium.support.ui.WebDriverWait;  public class TT  {      public static void main(String[] args) {          // 如果你的 FireFox 没有安装在默认目录,那么必须在程序中设置          System.setProperty("webdriver.firefox.bin", "C:\\Program Files (x86)\\Mozilla Firefox\\firefox.exe");        // 创建一个 FireFox 的浏览器实例          WebDriver driver = new FirefoxDriver();          // 让浏览器访问 Baidu          driver.get("http://www.baidu.com");          // 用下面代码也可以实现          // driver.navigate().to("http://www.baidu.com");          // 获取 网页的 title          System.out.println("1 Page title is: " + driver.getTitle());          // 通过 id 找到 input 的 DOM          WebElement element = driver.findElement(By.id("kw"));          // 输入关键字          element.sendKeys("zTree");          // 提交 input 所在的  form          element.submit();          // 通过判断 title 内容等待搜索页面加载完毕,Timeout 设置10秒          (new WebDriverWait(driver, 10)).until(new ExpectedCondition<Boolean>() {              public Boolean apply(WebDriver d) {                  return d.getTitle().toLowerCase().endsWith("ztree");              }          });          // 显示搜索结果页面的 title          System.out.println("2 Page title is: " + driver.getTitle());          //关闭浏览器          driver.quit();      }  }  

这个不是测试类,只是一个验证是否成功的方法。因为接上一条日志,最后还是因为火狐版本的原因报错了,所以先用这个简单测试下是否可以正常启动火狐。
6、报错:
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.gecko.driver system property; for more information, see https://github.com/mozilla/geckodriver. The latest version can be downloaded from https://github.com/mozilla/geckodriver/releases

这个错误的解决方法参考:https://stackoverflow.com/questions/39722422/selenium-java-java-lang-illegalstateexception-the-path-to-the-driver-executab

添加一行代码
System.setProperty("webdriver.firefox.marionette", "D:\\selenium\\geckodriver-v0.18.0-win64\\geckodriver.exe");

这样就可以解决了,如果没有geckodriver.exe,在这里下载:https://github.com/mozilla/geckodriver/releases

另外,如果报错:org.openqa.selenium.firefox.NotConnectedException: Unable to connect to host 127.0.0.1 on port 7055
那么就是火狐和selenium版本不兼容的问题了,于是我重装了39.0的火狐,但是这样xPath Checker的版本不兼容了。。。有哪个大神知道一个最完美的火狐版本可以兼容这些插件。。。