收藏
回答

minium如何在ide上自动处理手机号授权问题?

执行自动化测试时,跳出来手机号授权对话框,请问用什么方法可以处理掉啊?(是ide模式下的,谢谢)。

如图:

回答关注问题邀请回答
收藏

2 个回答

  • 社区技术运营专员--阳光
    社区技术运营专员--阳光
    2022-03-14

    ide暂时不支持

    2022-03-14
    有用
    回复 3
    • 胖子
      胖子
      2022-03-14
      好的,谢谢
      2022-03-14
      回复
    • 胖子
      胖子
      2022-03-14
      那么真机是使用allow_get_user_phone吗?谢谢
      2022-03-14
      回复
    • 社区技术运营专员--阳光
      社区技术运营专员--阳光
      2022-03-15回复胖子
      2022-03-15
      回复
  • 胖子
    胖子
    2022-03-14

    lib/pages/mobile_authorize_page.py:21: in authorize

        self.native.allow_get_user_phone()

    ../lib/python3.8/site-packages/minium/native/wx_native/androidnative.py:246: in allow_get_user_phone

        self.allow_authorize(answer)

    ../lib/python3.8/site-packages/minium/native/wx_native/androidnative.py:194: in allow_authorize

        return self._handle_btn("允许")

    ../lib/python3.8/site-packages/minium/native/wx_native/androidnative.py:263: in _handle_btn

        ret = do()

    ../lib/python3.8/site-packages/minium/native/wx_native/androidnative.py:260: in do

        return self.e.cls_name("android.widget.Button").focusable(True).text(btn_text).click_if_exists(timeout)

    ../lib/python3.8/site-packages/minium/native/lib/at/core/element.py:739: in click_if_exists

        if self.exists(0.5):

    ../lib/python3.8/site-packages/minium/native/lib/at/core/element.py:773: in exists

        return self.wait_exists(seconds)

    ../lib/python3.8/site-packages/minium/native/lib/at/core/element.py:461: in wait_exists

        uiview = self.get_view(timeout=0.5)

    ../lib/python3.8/site-packages/minium/native/lib/at/core/element.py:445: in get_view

        view = self._get_view()

    ../lib/python3.8/site-packages/minium/native/lib/at/core/element.py:428: in _get_view

        for ui_view_list in self.jd.dump_all_views():

    ../lib/python3.8/site-packages/minium/native/lib/at/core/javadriver.py:338: in dump_all_views

        res = self.request_at_device("dumpXmls", [])

    ../lib/python3.8/site-packages/minium/native/lib/at/core/javadriver.py:383: in request_at_device

        return self.request_action(self.ACTION_AT_DEVICE, method, params)

    ../lib/python3.8/site-packages/minium/native/lib/at/core/javadriver.py:371: in request_action

        return self.request_java(action, params)

    ../lib/python3.8/site-packages/minium/native/lib/at/core/javadriver.py:453: in request_java

        return self.do_request(action, http_params, **kwargs)

    ../lib/python3.8/site-packages/minium/native/lib/at/core/basedriver.py:161: in do_request

        ret = self.request(method.lower(), url, http_params, timeout=timeout, **kwargs)

    ../lib/python3.8/site-packages/minium/native/lib/at/core/basedriver.py:178: in request

        res = session.request(method, url, params=params, **kwargs)

    ../lib/python3.8/site-packages/requests/sessions.py:529: in request

        resp = self.send(prep, **send_kwargs)

    ../lib/python3.8/site-packages/requests/sessions.py:645: in send

        r = adapter.send(request, **kwargs)


    真机调用allow_get_user_phone报错,是哪里调用的不对?

    2022-03-14
    有用 1
    回复 2
    • 胖子
      胖子
      2022-03-14
      self = <requests.adapters.HTTPAdapter object at 0x7ff02437c1c0>, request = <PreparedRequest [GET]>, stream = False, timeout = Timeout(connect=60, read=60, total=None), verify = True, cert = None
      proxies = OrderedDict()


          def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None):
              """Sends PreparedRequest object. Returns Response object.
          
              :param request: The :class:`PreparedRequest <PreparedRequest>` being sent.
              :param stream: (optional) Whether to stream the request content.
              :param timeout: (optional) How long to wait for the server to send
                  data before giving up, as a float, or a :ref:`(connect timeout,
                  read timeout) <timeouts>` tuple.
              :type timeout: float or tuple or urllib3 Timeout object
              :param verify: (optional) Either a boolean, in which case it controls whether
                  we verify the server's TLS certificate, or a string, in which case it
                  must be a path to a CA bundle to use
              :param cert: (optional) Any user-provided SSL certificate to be trusted.
              :param proxies: (optional) The proxies dictionary to apply to the request.
              :rtype: requests.Response
              """
          
              try:
                  conn = self.get_connection(request.url, proxies)
              except LocationValueError as e:
                  raise InvalidURL(e, request=request)
          
              self.cert_verify(conn, request.url, verify, cert)
              url = self.request_url(request, proxies)
              self.add_headers(request, stream=stream, timeout=timeout, verify=verify, cert=cert, proxies=proxies)
          
              chunked = not (request.body is None or 'Content-Length' in request.headers)
          
              if isinstance(timeout, tuple):
                  try:
                      connect, read = timeout
                      timeout = TimeoutSauce(connect=connect, read=read)
                  except ValueError as e:
                      # this may raise a string formatting error.
                      err = ("Invalid timeout {}. Pass a (connect, read) "
                             "timeout tuple, or a single float to set "
                             "both timeouts to the same value".format(timeout))
                      raise ValueError(err)
              elif isinstance(timeout, TimeoutSauce):
                  pass
              else:
                  timeout = TimeoutSauce(connect=timeout, read=timeout)
          
              try:
                  if not chunked:
                      resp = conn.urlopen(
                          method=request.method,
                          url=url,
                          body=request.body,
                          headers=request.headers,
                          redirect=False,
                          assert_same_host=False,
                          preload_content=False,
                          decode_content=False,
                          retries=self.max_retries,
                          timeout=timeout
                      )
          
                  # Send the request.
                  else:
                      if hasattr(conn, 'proxy_pool'):
                          conn = conn.proxy_pool
          
                      low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT)
          
                      try:
                          skip_host = 'Host' in request.headers
                          low_conn.putrequest(request.method,
                                              url,
                                              skip_accept_encoding=True,
                                              skip_host=skip_host)
          
                          for header, value in request.headers.items():
                              low_conn.putheader(header, value)
          
                          low_conn.endheaders()
          
                          for i in request.body:
                              low_conn.send(hex(len(i))[2:].encode('utf-8'))
                              low_conn.send(b'\r\n')
                              low_conn.send(i)
                              low_conn.send(b'\r\n')
                          low_conn.send(b'0\r\n\r\n')
          
                          # Receive the response from the server
                          try:
                              # For Python 2.7, use buffering of HTTP responses
                              r = low_conn.getresponse(buffering=True)
                          except TypeError:
                              # For compatibility with Python 3.3+
                              r = low_conn.getresponse()
          
                          resp = HTTPResponse.from_httplib(
                              r,
                              pool=conn,
                              connection=low_conn,
                              preload_content=False,
                              decode_content=False
                          )
                      except:
                          # If we hit any problems here, clean up the connection.
                          # Then, reraise so that we can handle the actual exception.
                          low_conn.close()
                          raise
          
              except (ProtocolError, socket.error) as err:
                  raise ConnectionError(err, request=request)
          
              except MaxRetryError as e:
                  if isinstance(e.reason, ConnectTimeoutError):
                      # TODO: Remove this in 3.0.0: see #2811
                      if not isinstance(e.reason, NewConnectionError):
                          raise ConnectTimeout(e, request=request)
          
                  if isinstance(e.reason, ResponseError):
                      raise RetryError(e, request=request)
          
                  if isinstance(e.reason, _ProxyError):
                      raise ProxyError(e, request=request)
          
                  if isinstance(e.reason, _SSLError):
                      # This branch is for urllib3 v1.22 and later.
                      raise SSLError(e, request=request)
          
                  raise ConnectionError(e, request=request)
          
              except ClosedPoolError as e:
                  raise ConnectionError(e, request=request)
          
              except _ProxyError as e:
                  raise ProxyError(e)
          
              except (_SSLError, _HTTPError) as e:
                  if isinstance(e, _SSLError):
                      # This branch is for urllib3 versions earlier than v1.22
                      raise SSLError(e, request=request)
                  elif isinstance(e, ReadTimeoutError):
      > raise ReadTimeout(e, request=request)
      E requests.exceptions.ReadTimeout: HTTPConnectionPool(host='127.0.0.1', port=50527): Read timed out. (read timeout=60)


      ../lib/python3.8/site-packages/requests/adapters.py:532: ReadTimeout
      2022-03-14
      回复
    • Thomas
      Thomas
      2023-02-07
      你好,有解决掉吗?
      2023-02-07
      回复
登录 后发表内容