zoukankan      html  css  js  c++  java
  • appium 使用findElementByAndroidUIAutomator 定位元素示例

    appium 使用findElementByAndroidUIAutomator 定位元素示例

    import io.appium.java_client.remote.MobileCapabilityType;
    import io.appium.java_client.remote.MobilePlatform;
    import org.junit.After;
    import org.junit.Before;
    import org.junit.Test;
    import org.openqa.selenium.WebElement;
    import org.openqa.selenium.remote.DesiredCapabilities;
    
    import java.io.File;
    import java.net.URL;
    import java.util.List;
    
    import static org.junit.Assert.assertEquals;
    import static org.junit.Assert.assertTrue;
    
    /**
     * Test -android uiautomator locator strategy
     */
    public class AndroidUIAutomatorTest {
    
      private AppiumDriver driver;
    
      @Before
      public void setup() throws Exception {
        File appDir = new File("src/test/java/io/appium/java_client");
        File app = new File(appDir, "ApiDemos-debug.apk");
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability(MobileCapabilityType.BROWSER_NAME, "");
        capabilities.setCapability(MobileCapabilityType.DEVICE_NAME, "Android Emulator");
        capabilities.setCapability(MobileCapabilityType.PLATFORM_NAME, MobilePlatform.ANDROID);
        capabilities.setCapability(MobileCapabilityType.APP, app.getAbsolutePath());
        driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
      }
    
      @After
      public void tearDown() throws Exception {
        driver.quit();
      }
    
      @Test
      public void findElementTest() {
        WebElement element = driver.findElementByAndroidUIAutomator("new UiSelector().index(0)");
        assertEquals("android.widget.FrameLayout", element.getTagName());
      }
    
      @Test
      public void findElementsTest() {
        List<WebElement> elements = driver.findElementsByAndroidUIAutomator("new UiSelector().clickable(true)");
        assertTrue(elements.size() > 11);
      }
    
      @Test
      public void findElementByTest() {
        WebElement element = driver.findElement(MobileBy.AndroidUIAutomator("new UiSelector().index(0)"));
        assertEquals("android.widget.FrameLayout", element.getTagName());
      }
    
      @Test
      public void findElementsByTest() {
        List<WebElement> elements = driver.findElements(MobileBy.AndroidUIAutomator("new UiSelector().clickable(true)"));
        assertTrue(elements.size() > 11);
      }
    
      @Test
      public void findChainedElementsTest() {
          MobileElement el1 = (MobileElement) driver.findElementByAndroidUIAutomator("resourceId("android:id/content")");
          MobileElement el2 = (MobileElement) el1.findElementByAndroidUIAutomator("text("Accessibility")");
          el2.click();
          MobileElement el3 = (MobileElement) driver.findElementByAndroidUIAutomator("text("Custom View")");
          assertTrue(el3.isDisplayed());
      }
    
      @Test(expected = IllegalArgumentException.class)
      public void ErrorTest() {
        driver.findElementByAndroidUIAutomator(null);
      }
    
    }
  • 相关阅读:
    安装tensorflow-gpu
    Your CPU supports instructions that this TensorFlow binary was not compiled to use: AVX2 FMA
    js,jq获取父,兄弟,子节点整理
    dos 命令
    用JavaScript实现自动点击由confirm弹出的对话框中的“确定”按钮
    解决UnicodeEncodeError: 'gbk' codec can't encode character u'u25aa' in position 344 : illegal multiby
    JS中的document.title可以获取当前网页的标题
    python中的3目运算(3元表达式)
    ajax 怎么重新加载页面
    python win32api 如何用代码模拟点击网页confirm框的确定按钮
  • 原文地址:https://www.cnblogs.com/testway/p/6225415.html
Copyright © 2011-2022 走看看