python3+appium 操作手机登录账户时sendkeys报[element.sendKeys("python")] Error response status: 12,

由于输入框控件是android.view.View,不是android.widget.EditText,所以只能点击,不能sendkeys发送内容,可以用

driver.press_keycode(num)操作手机键盘输入内容。指令num为数字,
keycode 3:首页(Home key)

keycode 4:返回键(Back key)

keycode 5:电话键(Call key)

keycode 6:结束通话键(End Call key)

keycode 7-16:数字0-9

keycode 17:*

keycode 18:#

keycode 19-23:上、下、左、右、中间

keycode 24-25:音量上、下

keycode 26:电源键(Power key)

keycode 27:相机键(Camera key)

keycode 28:清除键(Clear key)

keycode 29-54:字母A-Z

keycode 55:,

keycode 56:.

keycode 61:Tab键(Tab key)

keycode 62:空格键(Space key)

keycode 66:回车键(Enter key)

keycode 67:退格键(Backspace key)

keycode 68:`

keycode 69:-

keycode 70:=

keycode 71:[

keycode 72:]

keycode 73:\

keycode 74:;

keycode 75:'

keycode 76:/

keycode 77:@

keycode 81:+

keycode 82:菜单键(Menu key)

keycode 84:搜索键(Search key)

keycode 164:静音键(Volume Mute key)

desired_caps = {}
desired_caps['platformName'] = 'Android'  #设备系统
desired_caps['platformVersion'] = '8.1.0'
desired_caps['deviceName'] = '' #设备名称
desired_caps['appPackage'] = 'mark.via' #apk包名使用的是via浏览器
desired_caps['unicodeKeyboard']= True  #使用unicode编码方式发送字符串
desired_caps['appActivity'] = '.ui.activity.BrowserActivity' #apk的launcherActivitydriver = webdriver.Remote('http://127.0.0.1:4723/wd/hub', desired_caps)
dicts = {'0': 7,'1':8,'2':9,'3':10,'4':11,'5':12,'6':13,'7':14,'8':15,'9':16,
'a':29,'b':30,'c':31,'d':32,'e':33,'f':34,'g':35,'h':36,'i':37,'j':38,'k':39,'l':40,'m':41,'n':42,'o':43,'p':44,'q':45,'r':46,'s':47,'t':48,'u':49,'v':50,'w':51,'x':52,'y':53,'z':54,
',':55,'.':56,'`':68,'[':71,']':72,'\\':73,';':74,"'":75,
'*':17,'#':18,'-':69,'=':70,'/':76,'@':77,'+':81,'(':162,')':163
}
def test_something():
    url='https://accounts.google.com/signin/v2/identifier?flowName=GlifWebSignIn&flowEntry=ServiceLogin'
    print('test_something click ------ ')
    time.sleep(2)
    #打开浏览器点击弹窗
    try:
        el1 = driver.find_element_by_id("mark.via:id/b0")
        el1.click()
        el2 = driver.find_element_by_id("android:id/button1")
        el2.click()
        el3 = driver.find_element_by_id("android:id/button1")
        el3.click()
        time.sleep(5)
        el4 = driver.find_element_by_accessibility_id("主页")
        el4.click()
        time.sleep(5)
    except:
        pass
    #输入URL搜索
    el5 = driver.find_element_by_xpath(
        "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView/android.view.View[2]/android.view.View[2]/android.view.View/android.widget.EditText")
    el5.send_keys(url)
    el5.click()
    el6 = driver.find_element_by_xpath(
        "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView/android.view.View[2]/android.view.View[2]/android.widget.Button")
    el6.click()
    time.sleep(6)
    #点击账号输入框
    el8 = driver.find_element_by_xpath(
        "/hierarchy/android.widget.FrameLayout/android.widget.LinearLayout/android.widget.FrameLayout/android.widget.RelativeLayout/android.widget.FrameLayout[2]/android.widget.FrameLayout/android.webkit.WebView/android.webkit.WebView/android.view.View[1]/android.view.View[3]/android.view.View/android.view.View[1]/android.view.View[2]/android.view.View")
    el8.click()
    time.sleep(0.1)
    username = 'WeSSAbj@gmail.com'
    for i in username:
        if dicts.get(i):
            print(dicts.get(i))
            driver.press_keycode(dicts[i]) #小写字母
        else:
            driver.press_keycode(dicts[i.lower()],64,59) #大写字母
        time.sleep(0.01)
    time.sleep(1)
    driver.keyevent(66)
    #点击密码输入框
    time.sleep(0.1)
    password = 'pvzx56147'
    for j in password:
        if dicts.get(j):
            driver.press_keycode(dicts[j])
        else:
            driver.press_keycode(dicts[j.lower()],64,59)
        time.sleep(0.01)
    time.sleep(2)
    driver.keyevent(66)

更多按键参考https://blog.csdn.net/miaomiao12345678/article/details/76400202,https://blog.csdn.net/caiyong_/article/details/85055403

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值