Java版本的Selenium异常记录

Mora ·
更新时间:2024-09-21
· 569 次阅读

  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

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

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



java版本 java版 JAVA selenium

需要 登录 后方可回复, 如果你还没有账号请 注册新账号