zoukankan      html  css  js  c++  java
  • appium操作微信公众号H5 web页面

    安卓微信公众号的H5页面是webview,一般操作需要切换context。

    在执行如下步骤,就能直接像识别native样识别webview

      1、代码追加:

            ChromeOptions options = new ChromeOptions();
                  options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
                  capabilities.setCapability(ChromeOptions.CAPABILITY, options);

      2、在微信任何对话框 发送 "//deletetbs"

    appium操作微信H5

    import java.net.MalformedURLException;
    import java.net.URL;
    import java.util.Set;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.chrome.ChromeOptions;
    import org.openqa.selenium.remote.DesiredCapabilities;
    import org.openqa.selenium.support.ui.WebDriverWait;
    import org.testng.annotations.Test;
    
    import com.fc.htgl.utils.ConfigUtil;
    
    import io.appium.java_client.android.AndroidDriver;
    
    
    public class TestWechat {
        public AndroidDriver<WebElement> driver;
        public WebDriverWait wait = null;
        public void apkStart(String udid, String packageName, String activityName, String appiumServer) {
    
            DesiredCapabilities capabilities = new DesiredCapabilities();        
            capabilities.setCapability("deviceName", udid);
            capabilities.setCapability("udid", udid);
            // 设置每次运行不重新启动被测试app
            capabilities.setCapability("noReset", "true");
            capabilities.setCapability("fullReset", "false");
            // 设置安卓系统版本
            capabilities.setCapability("platformVersion", "6.0");
            capabilities.setCapability("platformName", "Android");
            // session 延迟时间
            capabilities.setCapability("newCommandTimeout", 24000);
            capabilities.setCapability("device", "selendroid");
            // capabilities.setCapability("app", app.getAbsolutePath());
            capabilities.setCapability("unicodeKeyboard", "True");
            capabilities.setCapability("resetKeyboard", "True");
            // 设置app的主包名和主类名 微信程序包名和activity 名
            capabilities.setCapability("appPackage", packageName);
            capabilities.setCapability("appActivity", activityName);
    
            ChromeOptions options = new ChromeOptions();
                  options.setExperimentalOption("androidProcess", "com.tencent.mm:tools");
                  capabilities.setCapability(ChromeOptions.CAPABILITY, options);
            
            // 启动
            try {
                System.out.println("http://" + ConfigUtil.getBoxApkAppiumServer() + "/wd/hub");
                driver = new AndroidDriver<WebElement>(new URL("http://" + appiumServer + "/wd/hub"), capabilities);
                wait = new WebDriverWait(driver, 10);
            } catch (MalformedURLException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
    
        }
        @Test
        public void test(){
            this.apkStart("G6N7MBIZJ7YHLZO7", "com.tencent.mm", "com.tencent.mm.ui.LauncherUI", "127.0.0.1:4723");
            //点击公众号
             driver.findElementByAndroidUIAutomator("text("sdfsdfsd")").click();
            //进入公众号的H5页面
            driver.findElementByAndroidUIAutomator("text("sssss")").click();
            driver.findElementByAndroidUIAutomator("text("sfdfdfdf")").click();
            //微信h5 操作
            driver.findElementByXPath("//android.widget.EditText[@content-desc='添加备注']").sendKeys("abababab");;
            driver.findElementByXPath("//android.view.View[@content-desc='sdfsdfsdfsdf']").click();
    
            Set<String> context = driver.getContextHandles();
            for (String contextName : context) {
                System.out.println(contextName);
    
            }
        }
        
    
    }
  • 相关阅读:
    把梳子卖给和尚 引起的CRM
    windows 2008 r2 安装 owas 2013
    wopihost
    电商创业,你到底需要多少人的技术团队?
    信息化,并不能代替管理
    可遇不可求的Question之error: Failed dependencies: MySQLconflicts 错误篇
    可遇不可求的Question之flash的socket连接安全策略文件篇
    可遇不可求的Question之MySQL系统变量interactive_timeout 与 wait_timeout 篇
    可遇不可求的Question之导入mysql中文乱码解决方法篇
    Codesmith怎么判断sqlserver数据库字段是不是标识自增字段
  • 原文地址:https://www.cnblogs.com/testway/p/7002405.html
Copyright © 2011-2022 走看看