openatx / facebook-wda

Facebook WebDriverAgent Python Client Library (not official)
MIT License
1.72k stars 266 forks source link

操作alert时响应非常慢,还会报错 #43

Closed wisonxiang closed 5 years ago

wisonxiang commented 6 years ago

test_b.py retry to connect, error: HTTPConnectionPool(host='localhost', port=8100): Read timed out. (read timeout=60.0)

  s.alert.accept()

test_b.py:31:


/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/wda/init.py:508: in accept return self.http.post('/alert/accept') /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/wda/init.py:101: in fetch return self._fetch_no_alert(method, url, data) /Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/wda/init.py:107: in _fetch_no_alert return httpdo(target_url, method, data)


url = 'http://localhost:8100/session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/alert/accept' method = 'post', data = None

def httpdo(url, method='GET', data=None):
    """
    Do HTTP Request
    """
    start = time.time()
    if isinstance(data, dict):
        data = json.dumps(data)
    if DEBUG:
        print("Shell: curl -X {method} -d '{data}' '{url}'".format(method=method.upper(), data=data or '', url=url))

    try:
        response = requests.request(method, url, data=data, timeout=HTTP_TIMEOUT)
    except (requests.exceptions.ConnectionError, requests.exceptions.ReadTimeout) as e:
        # retry again
        print('retry to connect, error: {}'.format(e))
        time.sleep(1.0)
        response = requests.request(method, url, data=data, timeout=HTTP_TIMEOUT)

    retjson = response.json()
    if DEBUG:
        ms = (time.time() - start) * 1000
        print('Return ({:.0f}ms): {}'.format(ms, json.dumps(retjson, indent=4)))
    r = convert(retjson)
    if r.status != 0:
      raise WDAError(r.status, r.value)

E wda.WDAError: WDAError(status=27, value={})

/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/wda/init.py:83: WDAError ------------------------------ Captured log call ------------------------------- connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/elements HTTP/1.1" 200 162 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/wda/tap/0 HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/wda/tap/0 HTTP/1.1" 200 94 connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 214 INFO Starting new HTTP connection (1): localhost connectionpool.py 401 DEBUG "POST /session/BBBAA7CE-6EDB-4D3D-B1B9-CF09A4AADC29/alert/accept HTTP/1.1" 200 95 =============================== warnings summary =============================== None passing a string to pytest.main() is deprecated, pass a list of arguments instead.

-- Docs: http://doc.pytest.org/en/latest/warnings.html =============== 1 failed, 1 passed, 1 warnings in 93.43 seconds ================

Process finished with exit code 0

codeskyblue commented 6 years ago

也可能是alert不是系统的alert

wisonxiang commented 6 years ago

如果不是系统alert 有什么更好的方法来操作alert吗?

codeskyblue commented 6 years ago

那就是普通的ui操作

chenqb commented 5 years ago

是因为wda崩溃了