请教下,已经切换到webview,但是找不到元素,是怎么回事啊,谢谢
package com.demo;
import io.appium.java_client.AppiumDriver;
import io.appium.java_client.NoSuchContextException;
import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.remote.AndroidMobileCapabilityType;
import io.appium.java_client.remote.MobileCapabilityType;
import java.io.File;
import java.net.URL;
import java.util.Set;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.CapabilityType;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.testng.Assert;
import org.testng.annotations.Test;
public class Demo {
@Test
public static void startapp() throws Exception{
AppiumDriver driver;
DesiredCapabilities capabilities=new DesiredCapabilities();
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "127.0.0.1:21503");
// capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "192.168.154.101:5555");
capabilities.setCapability(MobileCapabilityType.PLATFORM_VERSION, "5.1.1");
capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, "Android");
//启动应用的包名
capabilities.setCapability(AndroidMobileCapabilityType.APP_PACKAGE, "com.tencent.mm");
//启动应用的起始ACTIVITY
capabilities.setCapability(AndroidMobileCapabilityType.APP_ACTIVITY,".ui.LauncherUI");
//支持中文输入
capabilities.setCapability("unicodeKeyboard", "True");
//重置输入法为系统默认
capabilities.setCapability("resetKeyboard", "True");
ChromeOptions options = new ChromeOptions();
// options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
options.setExperimentalOption("androidProcess", "com.tencent.mm:appbrand0");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
// DesiredCapabilities option = new DesiredCapabilities();
// option.setCapability("androidProcess", "com.tencent.mm:appbrand0");
// capabilities.setCapability(ChromeOptions.CAPABILITY, option);
driver=new AndroidDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
Thread.sleep(5000);
System.out.println("启动app成功");
Thread.sleep(5000);
driver.findElementByXPath("//[@text='发现']").click();
driver.findElementByXPath("//[@text='小程序']").click();
Thread.sleep(2000);
// driver.findElementByXPath("//*[contains(@text, '京东购物')]").click();
// Thread.sleep(5000);
//
// try{
// Set contexts = driver.getContextHandles();
// for (String context : contexts) {
// //打印出来看看有哪些context
// System.out.println(context);
// }
// driver.context("WEBVIEW_com.tencent.mm:appbrand0");
// }catch(NoSuchContextException nce){
// Assert.fail("没有这个context:");
// }
// Thread.sleep(5000);
// driver.findElementByXPath("//span[contains(text(), '领优惠券')]").click();
// ---------------------------------------------------------------------------------------
driver.findElementByXPath("//*[contains(@text, '美团外卖')]").click();
Thread.sleep(5000);
try{
Set contexts = driver.getContextHandles();
for (String context : contexts) {
//打印出来看看有哪些context
System.out.println(context);
}
driver.context("WEBVIEW_com.tencent.mm:appbrand0");
}catch(NoSuchContextException nce){
Assert.fail("没有这个context:");
}
Thread.sleep(5000);
driver.findElementByXPath("//[contains(@url, '美食')]").click();
driver.findElementByXPath("//[contains(., '金百万')]").click();
Thread.sleep(2000);
driver.quit();
}
}