编写自动化时,可能会遇到一些语言之间的调用。 例如: 在登录页面,获取短信验证码后通过java编写的加密方式存入数据库中;使用python编写自动化脚本调用对应jar包,jar包的内容时对应的解密方式,则可以将解密好的内容放入对应输入框内就可以自动化登录了。
Jpype1
安装 简单的安装方式,使用 Pycharm 编辑器,File --> settings, 如图所示安装即可:
1、首先需要一个打包好的jar包,可以自己写;也可以让开发帮助,根据个人情况而定。
2、将jar包放入自己合适的位置,能够访问到就行,绝对路径、相对路径都可以。
import os, jpype
get_sms_code_jar_loc_path = "C:\\BianYi\\WorkSpaces\\python\\AutoUpp\\AutoUppCxpay\\data\\lib\\getsmscode.jar"
class RunJar:
"""
运行java文件
"""
def open_java(self, get_name):
jar_path = os.path.join(os.path.abspath("."), get_name)
jpype.startJVM(jpype.getDefaultJVMPath(), "-Djava.class.path=%s" % jar_path)
'''--获取短信验证码--'''
def get_sms_code(self):
self.open_java(get_sms_code_jar_loc_path)
javaClass = jpype.JClass("com.txpay.MokwingTest.GetSmsCode") # JClass 是对应java运行的主类名称,路径不能错,不然会报找不到执行的类异常,java.lang.RuntimeException: Class com.txpay.MokwingTest.GetSmsCode not found。
sms_code = javaClass().getSmsCode() # getSmsCode() 是jar包中具体执行的方法名称
print(sms_code)
return sms_code
'''--关闭jvm--'''
def close_jar(self):
jpype.shutdownJVM() # 调用此方法后,禁用对现有的java对象调用,终止后无法重新启动jvm
if __name__ == "__main__":
RunJar().get_sms_code()