Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/github/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Appium Webdriver导入问题_Java_Eclipse_Selenium_Webdriver_Appium - Fatal编程技术网

Java Appium Webdriver导入问题

Java Appium Webdriver导入问题,java,eclipse,selenium,webdriver,appium,Java,Eclipse,Selenium,Webdriver,Appium,用Java为Android构建一个基本的Appium测试 当我运行代码时,它会给我一个异常错误: 线程“main”java.lang中出现异常。错误:未解决的编译问题: 无法解析驱动程序 无法解析驱动程序 驱动程序无法解析为变量 at tests.AppiumTest.main(AppiumTest.java:50) 我已经三次检查了我的jar文件,所有这些文件似乎都包含在内,我没有遗漏任何文件,但是当我将鼠标悬停在驱动程序文本上时,导入Webdriver选项不会出现 代码如下: package

用Java为Android构建一个基本的Appium测试

当我运行代码时,它会给我一个异常错误:

线程“main”java.lang中出现异常。错误:未解决的编译问题:

无法解析驱动程序

无法解析驱动程序

驱动程序无法解析为变量

at tests.AppiumTest.main(AppiumTest.java:50)

我已经三次检查了我的jar文件,所有这些文件似乎都包含在内,我没有遗漏任何文件,但是当我将鼠标悬停在驱动程序文本上时,导入Webdriver选项不会出现

代码如下:

package tests;
 
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.By;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;


import io.appium.java_client.AppiumDriver;
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
 
public class AppiumTest {
    
    public static void main(String[] args) {
        
        //Set the Desired Capabilities
        DesiredCapabilities caps = new DesiredCapabilities();
        caps.setCapability("deviceName", "My Phone");
        caps.setCapability("udid", "Redacted"); //Give Device ID of your mobile phone
        caps.setCapability("platformName", "Android");
        caps.setCapability("platformVersion", "7.1.1");
        caps.setCapability("appPackage", "com.android.vending");
        caps.setCapability("appActivity", "com.google.android.finsky.activities.MainActivity");
        caps.setCapability("noReset", "true");
        
        // Instagram: com.instagram.android/com.instagram.android.activity.MainTabActivity
        // Facebook: com.facebook.katana/com.facebook.katana.LoginActivity
        
        try {
        driver = new AndroidDriver<MobileElement>(new URL("http://0.0.0.0:4723/wd/hub"), caps);
        
    } catch (MalformedURLException e) {
        System.out.println(e.getMessage());
    }
    
    //Added 5 seconds wait so that the app loads completely before starting with element identification
    try {
        Thread.sleep(5000);
    } catch (InterruptedException e) {
        e.printStackTrace();
    }
    
    //Find Google Play element using ID property and click on it
    driver.findElement(By.id("com.android.vending:id/search_box_idle_text")).click();
    
    //Find 'Google Play Store' element and set the value Google
    driver.findElement(By.id("com.android.vending:id/search_box_text_input")).sendKeys("Google");
    
    //Press Enter key from Keyboard using any of the below methods
    ((AndroidDriver<MobileElement>) driver).pressKeyCode(66);
    }
 
}
包测试;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.util.concurrent.TimeUnit;
导入org.openqa.selenium.By;
导入org.openqa.selenium.Keys;
导入org.openqa.selenium.WebDriver;
导入org.openqa.selenium.remote.DesiredCapabilities;
导入io.appium.java_client.AppiumDriver;
导入io.appium.java_client.MobileElement;
导入io.appium.java_client.android.AndroidDriver;
公共类应用程序测试{
公共静态void main(字符串[]args){
//设置所需的功能
DesiredCapabilities=新DesiredCapabilities();
caps.setCapability(“deviceName”、“我的手机”);
caps.setCapability(“udid”、“redact”);//给出您手机的设备ID
caps.setCapability(“平台名”、“安卓”);
caps.setCapability(“平台版”、“7.1.1”);
caps.setCapability(“appPackage”、“com.android.vending”);
setCapability(“appActivity”、“com.google.android.finsky.activities.MainActivity”);
caps.setCapability(“noReset”、“true”);
//Instagram:com.Instagram.android/com.Instagram.android.activity.MainTabActivity
//Facebook:com.Facebook.katana/com.Facebook.katana.LoginActivity
试一试{
驱动程序=新的AndroidDriver(新的URL(“http://0.0.0.0:4723/wd/hub"(大写),;
}捕获(格式错误){
System.out.println(e.getMessage());
}
//增加了5秒钟的等待时间,以便应用程序在使用元素标识开始之前完全加载
试一试{
睡眠(5000);
}捕捉(中断异常e){
e、 printStackTrace();
}
//使用ID属性查找googleplay元素并单击它
driver.findElement(By.id(“com.android.vending:id/search\u box\u idle\u text”)。单击();
//查找“Google Play Store”元素并设置Google的值
driver.findElement(By.id(“com.android.vending:id/search\u box\u text\u input”)).sendKeys(“谷歌”);
//使用以下任一方法从键盘按Enter键
((AndroidDriver)driver)。按KeyCode(66);
}
}
导入的jar文件的屏幕截图:


首先,您没有显示AndroidDriver声明的位置

第二件事是,我并没有在你的附件中看到,你只是导入了硒

附属物

如果使用maven,pom中应该有类似的内容:


木卫一


希望这有帮助…

您在哪里声明了驱动程序变量?没有对驱动程序的声明,可能在其他地方?添加了驱动程序声明后,我现在收到一个套接字异常错误:线程“main”中的异常org.openqa.selenium.webdrivexception:java.net.SocketException:软件导致的连接中止:recv失败它调用Android驱动程序。想法?为了澄清,我在一个物理设备上运行这个,不是模拟器,但我只通过电缆连接,不是无线连接。我注释了thread.sleep try and catch部分,它现在工作了。有没有办法让这一切顺利进行?我想暂停一下,以确保所有内容都正确加载。感谢您的回答,我尝试添加驱动程序声明,我现在收到一个套接字异常错误:线程“main”org.openqa.selenium.webdrivexception中的异常:java.net.SocketException:软件导致的连接中止:recv失败它调用Android驱动程序。我不认为您的解决方案可以避免此问题?为了澄清,我在物理设备上运行此功能,而不是在模拟器上运行此功能,但我只通过电缆连接,没有进行无线连接。我注释了thread.sleep try and catch部分,它现在正在工作。有没有办法让这一切顺利进行?我希望暂停以确保所有内容都正确加载。您可以使用显式等待。webDriverWait=new-webDriverWait(appiumDriver,30);webDriverWait.until(ExpectedConditions.element可禁用(element));
<dependency>
    <groupId>io.appium</groupId>
    <artifactId>java-client</artifactId>
    <version>6.0.0</version>
</dependency>