第二章android利用QPython环境调用APPium

第二章、android配置QPython环境调用APPium

在第一章APPium基础,扩张移动端,下面第一章位置

第一章、APPium、android自动化

QPython环境搭建

1、android studio 配置python工程

build.gradle配置远程库

 maven { url "https://chaquo.com/maven" } //添加行
  classpath 'com.chaquo.python:gradle:12.0.0'

在这里插入图片描述
在app的gradle配置(说明:pip是可以下载相关python关联的第三方库)

plugins {
    id 'com.android.application'
    id 'com.chaquo.python'
}

android {
    compileSdkVersion 31
    buildToolsVersion "30.0.3"

    defaultConfig {
        applicationId "com.by.python_test"
        minSdkVersion 22
        targetSdkVersion 31
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        ndk {
            abiFilters "armeabi-v7a", "arm64-v8a"
        }
        python {
            pip {
                install "requests"
                install "Appium-Python-Client==2.11.0"
            }
        }
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
    }

在这里插入图片描述
对应工程调用代码com.chaquo.python的代码

package com.by.python_test;

import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.core.app.ActivityCompat;
import androidx.core.content.ContextCompat;

import android.Manifest;
import android.content.pm.PackageManager;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

import com.chaquo.python.PyObject;
import com.chaquo.python.Python;
import com.chaquo.python.android.AndroidPlatform;

public class MainActivity extends AppCompatActivity {
    Button pythonButton;

    Python python;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        if (ContextCompat.checkSelfPermission(this,
                        Manifest.permission.WRITE_EXTERNAL_STORAGE)!= PackageManager.PERMISSION_GRANTED||
                ContextCompat.checkSelfPermission(this,
                        Manifest.permission.INTERNET)!= PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this,
                    new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE,
                            Manifest.permission.INTERNET}, 100);
        }


        pythonButton = findViewById(R.id.searchButton);


        if (! Python.isStarted()) {
            Python.start(new AndroidPlatform(this));
        }
        python = Python.getInstance();

        pythonButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                PyObject pyObject=python.getModule("main");
                pyObject.callAttr("open_app");

            }
        });
    }


    @Override
    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
        super.onRequestPermissionsResult(requestCode, permissions, grantResults);
    }
}

在这里插入图片描述

python调用APPium

在对应python文件夹创建main.py文件
在这里插入图片描述

对应的代码

from appium import webdriver
from appium.options.common.base import AppiumOptions
from appium.webdriver.common.mobileby import MobileBy
import time
import subprocess


def main():
    print("Hello, Python!")

def open_app():
    options = AppiumOptions()
    options.load_capabilities({
        "platformName": "Android",
        "appium:platformVersion": "13.0.0",
        "appium:deviceName": "Mate 30",
        "appium:appPackage": "cn.migudm.aipatinside",
        "appium:appActivity": "cn.migudm.aipatinside.mvp.ui.MainActivity",
        "appium:ensureWebviewsHavePages": False,
        "appium:nativeWebScreenshot": True,
        "appium:newCommandTimeout": 3600,
        "appium:connectHardwareKeyboard": True
    })

    driver = webdriver.Remote("http://192.168.31.104:4723/wd/hub", options=options)

对应运行工程测试效果

appium效果

  • 7
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

baoyu45585

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值