[英]Getting Exception NoClassDefFoundError in Appium
Getting Exception java.lang.NoClassDefFoundError: org/openqa/selenium/HasTouchScreen in Appium while clicking on an Element. 获取异常java.lang.NoClassDefFoundError:在Appium中,单击元素时出现org / openqa / selenium / HasTouchScreen 。 I have used three locators(text,id,partialLinkText) in my code same Task but still getting the Same Exception Every time.
我在我的代码相同的Task中使用了三个定位符(text,id,partialLinkText) ,但每次都仍得到相同的异常。 PFB the App DOM Screenshot, code,Exception,jarfile version
PFB App DOM屏幕截图,代码,异常,jar文件版本
I am trying to click on Text "Sign in Or" so i can automate the signin Module. 我试图单击“登录或”文本,以便我可以自动执行登录模块。 But I got stuck in First Step only :(
但是我只停留在第一步:(
Code 码
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.android.AndroidDriver;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.testng.annotations.AfterTest;
import org.testng.annotations.BeforeTest;
import org.testng.annotations.Test;
public class searsLogin {
AndroidDriver driver;
@BeforeTest
public void setup() throws MalformedURLException {
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("deviceName", "ccdcb242");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "ANDROID");
capabilities.setCapability(CapabilityType.VERSION, "5.1.1");
capabilities.setCapability("platformName", "Android");
capabilities.setCapability("appPackage", "com.sears.android");
capabilities.setCapability("appActivity", "com.android.sears.activity.MenuDrawerActivity");
driver = (AndroidDriver) new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"),capabilities);
driver.manage().timeouts().implicitlyWait(45, TimeUnit.SECONDS);
}
@Test
void execution()
{
// driver.findElementByName("Sign in or").click();/// contains method
// boolean res = driver.findElement(By.name("Sign in or")).isDisplayed();
//boolean res = driver.findElement(By.xpath("//*[contains(text(),'Sign in or')]")).isDisplayed();
driver.findElement(By.partialLinkText("Sign in or")).click();
}
@AfterTest
public void end()
{
driver.quit();
} }
Exception Message 异常消息
java.lang.NoClassDefFoundError: org/openqa/selenium/HasTouchScreen
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
You are using WEB locator for mobile. 您正在使用WEB定位器进行移动。 The correct XPath for this action would be following:
此操作的正确XPath将是:
By.xpath("//*[@text='Sign in or']")
In Appium v1.5.3 - Android,For Clicking on Locator "Name" try with : 在Appium v1.5.3-Android中,对于单击定位器“名称”,请尝试:
driver.findElementByAndroidUIAutomator("new UiSelector().text(\\"Locator name\\")").click(); driver.findElementByAndroidUIAutomator(“ new UiSelector()。text(\\” Locator name \\“)”)。click();
For mentioned screenshot : driver.findElementByAndroidUIAutomator("new UiSelector().text(\\"Sign in or\\")").click(); 对于上述屏幕截图:driver.findElementByAndroidUIAutomator(“ new UiSelector()。text(\\” Sign in or \\“)”)。click();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.