Java版本的Selenium异常记录

1. 没有找到类的异常(NoClassDefFoundError)

异常如下:

Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/base/Function
    at com.yy.baidu.testBaidu.main(testBaidu.java:12)
Caused by: java.lang.ClassNotFoundException: com.google.common.base.Function
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more

解决办法:

此问题通常的包引入的少了,少Selenium包,如下图,除了要引入selenium-java-2.52.0.jar包以外,还需要引入libs目录下的包。

2. 没有找到Firefox的路径

异常如下:

Exception in thread "main" org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: WIN8_1
Build info: version: '2.52.0', revision: '4c2593c', time: '2016-02-11 19:03:33'
System info: host: 'DESKTOP-VFHU33A', ip: '192.168.3.115', os.name: 'Windows 8.1', os.arch: 'amd64', os.version: '6.3', java.version: '1.7.0_79'
Driver info: driver.version: FirefoxDriver
    at org.openqa.selenium.firefox.internal.Executable.<init>(Executable.java:74)
    at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:60)
    at org.openqa.selenium.firefox.FirefoxBinary.<init>(FirefoxBinary.java:56)
    at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:120)
    at com.yy.baidu.testBaidu.main(testBaidu.java:12)

解决办法:

方法1. 重装Firefox,这个问题最简单的办法就是重新按照Firefox,稳稳的

方法2. 用System.setPropert方法设置webdriver.firefox.bin的值,如:

public class testBaidu {
    public static void main(String[] args){
 
        System.setProperty("webdriver.firefox.bin","D:\\Mozilla Firefox\\firefox.exe");
 
 
        System.out.println("srart selenium ");
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.baidu.com");
        WebElement txtbox = driver.findElement(By.id("kw"));
        txtbox.sendKeys("selenium java");
        WebElement btn = driver.findElement(By.id("su"));
        btn.click();
        System.out.println("end selenium");
    }
}

方法3. 用FirefoxBinary类和public FirefoxDriver(FirefoxBinary binary, FirefoxProfile profile)这个构造方法,直接上代码:

public class testBaidu {
    public static void main(String[] args){
 
        File pathToFirefoxBinary = new File("D:\\Mozilla Firefox\\firefox.exe");
        FirefoxBinary firefoxbin = new FirefoxBinary(pathToFirefoxBinary);
        WebDriver driver = new FirefoxDriver(firefoxbin,null);//这里使用这个构造方法。 
 
        System.out.println("srart selenium ");
        WebDriver driver = new FirefoxDriver();
        driver.get("http://www.baidu.com");
        WebElement txtbox = driver.findElement(By.id("kw"));
        txtbox.sendKeys("selenium java");
        WebElement btn = driver.findElement(By.id("su"));
        btn.click();
        System.out.println("end selenium");
    }
}

注:有人可能会不知道webdriver.firefox.bin,可以看一下源码,其中

org.openqa.selenium.firefox.internal.Executable.locateFirefoxBinaryFromSystemProperty()

方法第一句

    String binaryName = System.getProperty(FirefoxDriver.SystemProperty.BROWSER_BINARY);

说明默认的时候取的就是这个值,重新设置一下。

最后附上查看Selenium源码的方法

1. 右键selenium引入的jar包“selenium-java-2.52.0.jar”选择Properties

2. 点击External location -> External File... -> 找到“selenium-java-2.52.0-srcs.jar”

设置好了之后,就可以查看Selenium的源码了。

转载于:https://www.cnblogs.com/yyhh/p/5194672.html

Selenium碰到的异常记录相关推荐

  1. selenium 学习、工作 记录,附常见异常和工具方法

    selenium 学习.工作 记录,附常见异常和工具方法 基础配置 2020.03.31 开发者模式 设置有认证的http代理 让selenium接管人为打开的chrome 2020.07.23(79 ...

  2. [解决问题]selenium.remote.UnreachableBrowserException 异常分析并解决问题

    [解决问题]selenium.remote.UnreachableBrowserException 异常分析并解决问题 参考文章: (1)[解决问题]selenium.remote.Unreachab ...

  3. 异常记录-No module named ‘numpy.core._multiarray_umath

    异常记录-No module named 'numpy.core._multiarray_umath 参考文章: (1)异常记录-No module named 'numpy.core._multia ...

  4. 异常记录: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError

    异常记录: Handler dispatch failed; nested exception is java.lang.NoSuchMethodError 参考文章: (1)异常记录: Handle ...

  5. 异常记录(CPU产生的异常和软件模拟产生的异常)

    文章目录 前奏 异常的分类 CPU产生的异常 软件模拟产生的异常 异常产生 CPU异常的产生 CommonDispatchException函数分析 总结: 软件模拟异常 填充ExceptionRec ...

  6. Windows异常学习笔记(一)—— CPU异常记录模拟异常记录

    Windows异常学习笔记(一)-- CPU异常记录 基础知识 异常的分类 CPU异常 分析中断处理函数 _KiTrap00 分析 CommonDispatchException 总结 软件模拟异常 ...

  7. Maven : maven异常记录-must be unique maven duplicate declaration of version

    1.美图 2.背景 maven异常记录 INFO] Scanning for projects... [WARNING] [WARNING] Some problems were encountere ...

  8. 运用Unity实现AOP拦截器[结合异常记录实例]

    运用Unity实现AOP拦截器[结合异常记录实例] 参考文章: (1)运用Unity实现AOP拦截器[结合异常记录实例] (2)https://www.cnblogs.com/wujy/p/33233 ...

  9. spring.net结合普通三层(实现IOC 及AOP中的异常记录功能)

    spring.net结合普通三层(实现IOC 及AOP中的异常记录功能) 参考文章: (1)spring.net结合普通三层(实现IOC 及AOP中的异常记录功能) (2)https://www.cn ...

最新文章

  1. SAP MM在ML81N事务代码界面报错- Customizing incorrectly maintained –之对策
  2. 一个可以设置中奖概率的抽奖程序[转]
  3. SonarQube4.4+Jenkins进行代码检查实例之一
  4. 排序学习(LTR)经典算法:RankNet、LambdaRank和LambdaMart
  5. SAP SuccessFactor学习中心的通知机制
  6. 嵌入式成长轨迹37 【Zigbee项目】【CC2430基础实验】【自动闪烁】
  7. 平面设计师必备素材|中国/国潮风格
  8. linux fstab 启动,修改-etc-fstab后Linux不能启动
  9. Python 中的map和reduce学习笔记
  10. Spark 计算人员二度关系
  11. 去除WMP10上面的东方宽屏图标
  12. 视频教程-项目管理12个微案例-项目管理
  13. 语义分割系列6-Unet++(pytorch实现)
  14. 领导力:“不懂带团队你就自己累”
  15. 在Springboot中使用pagehelper实现分页管理
  16. 鸟哥的linux私房菜 NO.1
  17. 【重要】一文带你读懂什么是docker
  18. T1与T3定时器的使用
  19. 使用Gson将Java对象转换为JSON
  20. python文件读写删

热门文章

  1. 总结几个 C 语言知识点
  2. 前端教程:HTML5有哪些新特性?
  3. 人工智能学习该读哪些书籍?
  4. C语言基础教程之递归
  5. C++进阶教程之异常如何处理
  6. 高大上!手把手教你在京东云擎上部署个人应用!
  7. TypeScript接口用法(基础)
  8. 基于Swoole和beanstalkd实现多进程处理消息队列。
  9. 经典并发问题:生产者-消费者
  10. Geant4在Ubuntu下的安装教程