Selenium碰到的异常记录

2023-11-06

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目录下的包。

package

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

sele1

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

sele2

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium碰到的异常记录 的相关文章

随机推荐

  • iptables官方手册整理

    iptables官方手册整理 目录 1 简介 2 首先 什么是包过滤 3 快速入门指南 4 数据包过滤流程 5 具体如何使用Iptables命令实现过滤功能 6 地址转换 NAT 7 排除建议 1 简介 读者们 大家好 在这里我们假设你已经
  • 安装golang项目的 GVM

    GITHUB地址 https github com moovweb gvm bash lt lt curl s S L https raw githubusercontent com moovweb gvm master binscript
  • keras fine-tune方法

    https blog csdn net jdzwanghao article details 80697104
  • lzma算法分析

    lzma算法分析 这几天在公司主要在做压缩相关 记录一下所得 目前业界主流的压缩算法感觉并不多 好用的就Huffman lz系列 其他的像差分编码 vlq编码 感觉只能做个数据预处理 或者一种小范围的压缩 lz系列有很多 主要有lz77 l
  • 禁用系统【快应用】,停止【快应用】自动弹出

    快应用 九大厂商同时宣布建立即时应用生态发展联盟 通过统一标准让开发者低成本接入 快应用 在研发接口 场景接入 服务能力和接入方式上建设标准平台 以平台化的生态模式对个人开发者和企业开发者全品类开放 此次九大厂商共建 快应用 标准和平台 最
  • C语言:操作符以及部分表达式介绍

    目录 1 操作符 1 1 算数操作符 1 2 移位操作符 1 3 位操作符 1 4 1 赋值操作符 1 4 2 复合赋值符 1 5 单目操作符 1 6 关系操作符 1 7 逻辑操作符 1 8 条件操作符 1 9 逗号操作符 1 10 下标引
  • udp发包结合tkinter

    import socket import tkinter from tkinter import filedialog from tkinter filedialog import def action 获取输入框内容 date entry
  • 深度学习双显卡配置_更新深度学习装备:双(1080Ti)显卡装机实录

    前言 之前一直在装有一张1080Ti的服务器上跑代码 但是当数据量超过10W 图像数据集 的时候 训练时就稍微有点吃力了 速度慢是一方面 关键显存存在瓶颈 导致每次训练的batch size不敢调的过高 batch size与训练结果存在一
  • 播放器实战22 解决花屏与卡顿问题

    1 内存对齐 1 1什么是内存对齐 在C语言中 结构是一种复合数据类型 其构成元素既可以是基本数据类型 如int long float等 的变量 也可以是一些复合数据类型 如数组 结构 联合等 的数据单元 在结构中 编译器为结构的每个成员按
  • 小熊派笔记2

    GPIO案例 GPIO接口函数 初始化 wifiiot gpio h接口 wifiiot gpio ex h接口 扩展函数 设置GPIO拉力和驱动器强度 LED对应的gpio引脚是gpio2通过控制gpio2输出的电平信号来实现闪烁 设置
  • 三极管和场效应管-易错点

    NPN三极管是电流控制器件 共发射极电路中 放大区 Ice Ib x Vbe正偏 Vbc反偏 电势 Vc Vb Ve 饱和区 Ice Ib x 两个都正偏 电势 Vb Vc Ve Vce之间是饱和管压降Vces 截止区 Ice 0 两个都反
  • VerilogHDL实现除法操作

    硬件电路中实现除法操作一般基于两种方式 乘法操作和减法操作 基于减法的除法器 对于32位的无符号除法 被除数a除以除数b 他们的商和余数位数一定不超过32位 首先将a转换为32位 b也转换为32位 在每周期的开始 先将a左移一位 末尾补0
  • 如何知道你的Linux内核占用的内存大小?

    如何知道你的Linux内核占用的内存大小 1 代码段等 2 kernel heap 2 1 kmalloc 2 2 vmalloc 3 进程的页表 4 内核占用内存大小总和 1 代码段等 内核所需的代码段 bss段 内核栈等 dmesg g
  • 双调排序算法的实现(C++)

    双调排序算法的实现 C 双调排序 Bitonic Sort 是一种并行排序算法 它在某些情况下比传统的排序算法具有更好的性能 该算法的特点是可以通过并行比较和交换操作来对元素进行排序 适用于并行计算环境 本文将介绍双调排序算法的实现 并提供
  • subList截图数据集合,便于分页或分批次保存至数据库

    import java util ArrayList import java util List public class subList param list 待切割集合 param len 集合按照多大size来切割 param
  • ZNYQ初体验,持续记录中...

    首先在VIVADO中创建zynq PS核 步骤如下 如下新建工程 新建 block design add ip 选择zynq7 processing system 如下图所示 双击打开配置界面如下 下面我们简要地介绍一下页面导航面板中各个页
  • 解决页面禁止拷贝的问题

    众所周知 像这种禁止的动作一般都是网页中的javascript在作怪 那么 我们直接把他禁用就好了吖 其实 最简单的 在你前面网页的导航栏里面输入javascript void 就可以尽情的白嫖了
  • go语言 FindWindow

    Go 语言中的 FindWindow 函数是用于查找窗口句柄的函数 它是由 Windows API 提供的 在 Go 中通过 syscall 包来调用 用法示例 packagemain import fmt syscall unsafe v
  • 有趣的数据结构算法5——利用循环链表解决Josephus问题

    有趣的数据结构算法5 利用循环链表解决Josephus问题 题目复述 解题思路 实现代码 GITHUB下载连接 本次教程主要讲述如何利用循环链表解决Josephus问题 题目复述 据说著名犹太历史学家 Josephus有过以下的故事 在罗马
  • Selenium碰到的异常记录

    Java版本的Selenium异常记录 1 没有找到类的异常 NoClassDefFoundError 异常如下 Exception in thread main java lang NoClassDefFoundError com goo