我正在尝试启动facebook App的自动化。我从应用程序注销并使用dumpsys window windows | grep -E mCurrentFocus|mFocusedApp
来获取应用程序活动和包。我得到的值为com.facebook.katana/com.facebook.account.login.activity.SimpleLoginActivity
我在appium检查器中提供了值来获取定位器值
{
"deviceName": "xxxx",
"udid": "xxxx",
"appPackage": "com.facebook.katana",
"platformName": "android",
"appActivity": "com.facebook.account.login.activity.SimpleLoginActivity"
}
但是我收到了错误
exited with code 4294967295'; Stderr: 'Security exception: Permission Denial: starting Intent { flg=0x10000000 cmp=com.facebook.katana/com.facebook.account.login.activity.SimpleLoginActivity } from null (pid=20151, uid=2000) not exported from uid 10206
C:\Users\aswathy_krishnan>adb shell am start -W -n com.facebook.katana/.com.face
book.account.login.activity.SimpleLoginActivity -S -a android.intent.action.MAIN
-c android.intent.category.LAUNCHER -f 0x10200000
但它给了我一个错误,
Error: Activity class {com.facebook.katana/com.facebook.katana.com.facebook.acco
unt.login.activity.SimpleLoginActivity} does not exist.
我究竟做错了什么?我认为这可能是因为appActivity,但我怎样才能获得主要活动?
异常非常明确:出于安全原因,活动开始被阻止。
您需要在AndroidManifest.xml文件中设置android:exported="true"
,其中声明了SimpleLoginActivity
。我猜您无法访问Facebook App源代码来解决这个问题。
Appium是非常灵活的工具,但如果AUT有安全限制,Appium就无法做任何事情。
首先使用以下链接交叉检查您的主要活动。
http://www.automationtestinghub.com/apppackage-and-appactivity-name/
如果你仍然得到相同的错误,那么android:exported="true"
应该在AndroidManifest.xml中用于主要活动/指定的活动。