appium環境

Appium環境安裝

 

Appium⽣態⼯具

❖ adb:android的控制⼯具,⽤於獲取android的各種數據和控制

❖ Appium Desktop:內嵌了appium server和inspector⼯具的綜合⼯具

❖ Appium Server:appium的核⼼⼯具,命令⾏⼯具

❖ Appium client:各種語⾔的客戶端封裝庫,⽤於連接appium server

❖ python

❖ java

❖ ruby

❖ robotframework-appium

❖ AppCrawler ⾃動遍歷工具

 

 

 

server端

  • 安裝nodejs

輸入npm version 查看nodejs版本 (cygwin中)

  • 命令執行 npm install -g appium

@想用版本

-verbose 可查看下載內容

安裝完成

 

  • 啓動appium --session-override

 

 

 

 

運行時遇到的問題與解決方法:

啓動appium開始運行時提示:

error  

An unknown server-side error occurred while processing the command. Original error: Could not find adb.exe in ...... sdk目錄

或 no such file or directory, scandir sdk路徑

【解決方法】sdk在配置環境變量時路徑錯誤,ANDROID_HOME只需寫到sdk即可。

參考:https://jingyan.baidu.com/article/f0e83a2548461022e5910199.html

 

 

創建:

查看當前應用activities

adb shell dumpsys activity activities |less

 

 

 

 

 

 

 

start session

 

 

 

生成操作的源代碼

 

 

Java

 

maven中添加依賴

 <dependencies>
        <dependency>
            <groupId>io.appium</groupId>
            <artifactId>java-client</artifactId>
            <version>6.0.0-BETA3</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.11</version>
        </dependency>
    </dependencies>
import io.appium.java_client.MobileElement;
import io.appium.java_client.android.AndroidDriver;
import junit.framework.TestCase;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.concurrent.TimeUnit;

import org.openqa.selenium.remote.DesiredCapabilities;

public class testerhomeDemo {

    private AndroidDriver driver;

    @Before
    public void setUp() throws MalformedURLException {
        DesiredCapabilities desiredCapabilities = new DesiredCapabilities();
        desiredCapabilities.setCapability("appActivity", ".MainActivity");
        desiredCapabilities.setCapability("appPackage", "com.testerhome.android");
        desiredCapabilities.setCapability("platformName", "Android");
        desiredCapabilities.setCapability("deviceName", "T7G0215522010430");
        desiredCapabilities.setCapability("noReset","false");
        desiredCapabilities.setCapability("fullRest", "true");

        URL remoteUrl = new URL("http://127.0.0.1:4723/wd/hub");

        driver = new AndroidDriver(remoteUrl, desiredCapabilities);

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    }

    @Test
    public void sampleTest() {
        MobileElement el1 = (MobileElement) driver.findElementByAccessibilityId("MTSC MTSC 第五屆移動互聯網測試開發大會志願者招募  MTSC 第五屆移動互聯網測試開發大會志願者招募");
        el1.click();
        MobileElement el2 = (MobileElement) driver.findElementByAccessibilityId("分享");
        el2.click();
    }

    @After
    public void tearDown() {
        driver.quit();
    }
}

 

 

 

python

 

 

 

未調試成功

# This sample code uses the Appium python client
# pip install Appium-Python-Client
# Then you can paste this into a file and simply run with Python

from appium import webdriver

caps = {}
caps["appActivity"] = ".MainActivity"
caps["appPackage"] = "com.testerhome.android"
caps["platformName"] = "Android"
caps["deviceName"] = "T7G0215522010430"

driver = webdriver.Remote("http://127.0.0.1:4723/wd/hub", caps)
driver.implicitly_wait(13)
print("wait")
el1 = driver.find_element_by_accessibility_id("活動沙龍 知乎&TesterHome 第一期質量技術沙龍 | 活動報名  知乎&TesterHome 第一期質量技術沙龍 | 活動報名")
el1.click()
driver.implicitly_wait(10)
print("wait")
el2 = driver.find_element_by_accessibility_id("分享")
el2.click()
el3 = driver.find_element_by_xpath("/hierarchy/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.support.v4.view.ViewPager/android.widget.GridView/android.widget.LinearLayout[1]/android.widget.LinearLayout/android.widget.ImageView")
el3.click()

driver.quit()

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章