Looking for some help with this one. I am switching from Ruby to Python to test a few things and I am running into issues connecting to my device. I am using a physical device over wifi
Here is the ruby code I am using successfully:
require 'io/console’
require 'appium_lib’
require ‘./navigation.rb’def main
build_argsdesired_caps = {
host: ‘192.168.1.119’,
port: 5555,
caps: {
platformName: “Android”,
platformVersion: “7.1.1”,
deviceName: “0815f89369ea0604”,
appPackage: “com.testapp.test”,
appActivity: “com.tns.NativeScriptActivity”,
}}
$driver = Appium::Driver.new(desired_caps, true)
puts “Establishing connection and waiting for app to initialize…”
$driver.start_driver
sleep(45)login_to_device
side_bar_navigate_to(“Sign Out”)
signout = $driver.find_element(:id, “android:id/button1”)
signout.clickfinish_tests
end
this works well and I am having no issues with it.
When I try to do something similar via python I get a large error message pretty much right away:
python pythontest\ .py
test_find_elements (main.SimpleAndroidTests)
Login Test … ERROR======================================================================
ERROR: test_find_elements (main.SimpleAndroidTests)
Login TestTraceback (most recent call last):
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool\ .py”, line 600, in urlopen
chunked=chunked)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool\ .py”, line 384, in _make_request
six.raise_from(e, None)
File “”, line 2, in raise_from
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool\ .py”, line 380, in _make_request
httplib_response = conn.getresponse()
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\http\client\ .py”, line 1321, in getresponse
response.begin()
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\http\client\ .py”, line 296, in begin
version, status, reason = self._read_status()
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\http\client\ .py”, line 265, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
http.client.RemoteDisconnected: Remote end closed connection without responseDuring handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “pythontest\ .py”, line 29, in setUp
self.driver = webdriver.Remote(‘192.168.1.119:5555’, desired_caps)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\appium\webdriver\webdriver\ .py”, line 97, in init
super(WebDriver, self).init(command_executor, desired_capabilities, browser_profile, proxy, keep_alive)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver\ .py”, line 156, in init
self.start_session(capabilities, browser_profile)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\appium\webdriver\webdriver\ .py”, line 136, in start_session
response = self.execute(RemoteCommand.NEW_SESSION, parameters)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\webdriver\ .py”, line 318, in execute
response = self.command_executor.execute(driver_command, params)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\remote_connection\ .py”, line 375, in execute
return self._request(command_info[0], url, body=data)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\selenium\webdriver\remote\remote_connection\ .py”, line 402, in _request
resp = http.request(method, url, body=body, headers=headers)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\request\ .py”, line 72, in request
**urlopen_kw)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\request\ .py”, line 150, in request_encode_body
return self.urlopen(method, url, **extra_kw)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\poolmanager\ .py”, line 322, in urlopen
response = conn.urlopen(method, u.request_uri, **kw)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool\ .py”, line 638, in urlopen
_stacktrace=sys.exc_info()[2])
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\util\retry\ .py”, line 367, in increment
raise six.reraise(type(error), error, _stacktrace)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\packages\six\ .py”, line 685, in reraise
raise value.with_traceback(tb)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool\ .py”, line 600, in urlopen
chunked=chunked)
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool\ .py”, line 384, in _make_request
six.raise_from(e, None)
File “”, line 2, in raise_from
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\site-packages\urllib3\connectionpool\ .py”, line 380, in _make_request
httplib_response = conn.getresponse()
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\http\client\ .py”, line 1321, in getresponse
response.begin()
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\http\client\ .py”, line 296, in begin
version, status, reason = self._read_status()
File “C:\Users\ryand\AppData\Local\Programs\Python\Python37-32\lib\http\client\ .py”, line 265, in _read_status
raise RemoteDisconnected("Remote end closed connection without"
urllib3.exceptions.ProtocolError: (‘Connection aborted.’, RemoteDisconnected(‘Remote end closed connection without response’))
Ran 1 test in 0.124s
FAILED (errors=1)
Here is what my code looks like:
import os
from time import sleepimport unittest
from appium import webdriver
PATH = lambda p: os.path.abspath(
os.path.join(os.path.dirname(file), p)
)class SimpleAndroidTests(unittest.TestCase):
def setUp(self):
"Setup"
desired_caps = {}
desired_caps[‘platformName’] = 'Android’
desired_caps[‘platformVersion’] = '7.1.1’
desired_caps[‘deviceName’] = '0815f89369ea0604’
desired_caps[‘appPackage’] = 'com.testapp.test’
desired_caps[‘appActivity’] = ‘com.tns.NativeScriptActivity’self.driver = webdriver.Remote('192.168.1.119:5555', desired_caps) def tearDown(self): "End" # end the session self.driver.quit() def test_find_elements(self): "Login Test" el1 = driver.find_element_by_accessibility_id("Username") el1.click() el1.send_keys("Testuser1") el2 = driver.find_element_by_accessibility_id("Password") el2.send_keys("Testuser1") el4 = driver.find_element_by_accessibility_id("Sign In") el4.click()
if name == ‘main’:
suite = unittest.TestLoader().loadTestsFromTestCase(SimpleAndroidTests)
unittest.TextTestRunner(verbosity=2).run(suite)
It looks like it is crashing trying to connect but not many resources mention connecting via wifi with Python. Any advice on what I should be doing differently?
Sorry about the bad formatting. I had to do some search and replaces so Discuss would let me post this. It kept seeing references to .py files as links
created
Aug '18
last reply
Oct '18
- 4
replies
- 427
views
- 2
users
- 1
like