簡體   English   中英

運行appium腳本時出現java.lang.ClassNotFoundException

[英]java.lang.ClassNotFoundException is comming when running appium script

我對appium很陌生:

我想運行一個代碼,在我的設備中打開chrome並打開google.com:

  @BeforeMethod
  public void setUp() throws Exception {

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("browserName", "Browser");
    capabilities.setCapability("device", "Android");
    capabilities.setCapability("deviceName", "TA9330416L");
    capabilities.setCapability("platformVersion", "5.1");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("appPackage", "com.android.chrome");
    driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);

  }

  @AfterMethod
  public void tearDown() throws Exception {
    driver.quit();
  }

  @Test
  public void launchWebsite()throws InterruptedException {
    driver.get("http://www.google.com");
  }

但出現以下錯誤:

*失敗的配置:@BeforeMethod setUp java.lang.NoClassDefFoundError:com / google / common / base / Function在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)在sun.reflect。 org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:86.java.lang.reflect.Method.invoke(Unknown Source)處的.NativeMethodAccessorImpl.invoke(未知源) )在org.testng.internal.Invoker.invokeConfigurations(Invoker.java:215)在org.testng.internal.Invoker.invokeConfigurationMethod(Invoker.java:514)在org.testng.internal.Invoker.invokeMethod(Invoker.java: 589)在org.testng.internal.Invoker.invokeTestMethod(Invoker.java:820)在org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1128)在org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java :129),位於org.testng.TestRunne的org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:112) org.testng.SuiteRunner.run(SuiteRunner.java:366)上的org.testng.TestRunner.run(TestRunner.java:632)上的r.privateRun(TestRunner.java:782)org.testng.SuiteRunner.runSequentially(SuiteRunner) .java:361)org.testng.SuiteRunner.privateRun(SuiteRunner.java:319)org.testng.SuiteRunner.run(SuiteRunner.java:268)org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)在org.testng.TestNG.runSuitesLocally(TestNG.java:1171)的org.testng.TestNG.runSuitesSequentially(TestNG.java:1246)的org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)處。 org.testng.remote上的TestNG.run(TestNG.java:1066).org.org.testng.remote上的TestNG.run(RemoteTestNG.java:113)org.testng.remote上的org.testng.remote.RemoteTestNG.initAndRun(RemoteTestNG.java:206) .RemoteTestNG.main(RemoteTestNG.java:177)由以下原因引起:java.lang.ClassNotFoundException:com.google.common.base.Function在java.net.URLClassLoader.findClass(未知源)在java.lang.ClassLoader.loadClass(未知來源),位於sun.misc.Launcher $ A ppClassLoader.loadClass(未知源),位於java.lang.ClassLoader.loadClass(未知源)... 27更多

跳過的配置:@AfterMethod tearDown
跳過:launchWebsite * /

您需要添加此Dependendcy jar https://code.google.com/p/guava-libraries/

必須創建任何測試類? 錯誤提示未找到類定義。 您必須首先在測試類上創建並在該類中定義函數。 我沒有在android瀏覽器上嘗試過,但是我已經使用appium自動化了android hybrid和native應用。

package test;

import java.net.URL;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;
import io.appium.java_client.android.AndroidDriver;

public class TestBrowser {

public AndroidDriver driver;

public TestBrowser() {
        //To do
}

@BeforeMethod
  public void setUp() throws Exception {

    DesiredCapabilities capabilities = new DesiredCapabilities();
    capabilities.setCapability("appium-version", "1.0");
    capabilities.setCapability("browserName", "Browser");
    capabilities.setCapability("platformName", "Android");
    capabilities.setCapability("deviceName", "TA9330416L");
    capabilities.setCapability("platformVersion", "5.1");
    capabilities.setCapability("appPackage", "com.android.chrome");
    driver = new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);

  }

@AfterMethod
public void tearDown() throws Exception {
        if(driver!=null)
        driver.quit();
 }

  @Test
  public void launchWebsite()throws InterruptedException {
    driver.get("http://www.google.com");
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM