Hi Yosry,

My guess is because selenium is running faster on our machine. Depends on
machine.

On Sat, Aug 24, 2019, 12:06 Yosry Muhammad <yosry...@gmail.com> wrote:

> Hi Aditya,
>
> Thanks a lot.
>
> Do you have any idea why this problem never occurred on my machine by the
> way?
>
> On Sat, Aug 24, 2019, 8:18 AM Aditya Toshniwal <
> aditya.toshni...@enterprisedb.com> wrote:
>
>> Hi Yosry,
>>
>> It's failing for me as well. I debugged and found that, sometimes the
>> grid render is delayed (in microseconds) after query execution. Because of
>> which, the cell you had selected using xpath is actually the older one. And
>> when you're trying to set the value the cell no longer exists as the new
>> cell is rendered now. That's why stale element exception. Adding below code
>> solved the problem for me. Attached is the patch.
>>
>> import time
>> time.sleep(0.5)
>> for column_index, should_be_editable in enumerated_should_be_editable:
>>
>>
>> On Sat, Aug 24, 2019 at 4:08 AM Yosry Muhammad <yosry...@gmail.com>
>> wrote:
>>
>>> Hi Dave,
>>>
>>> I am now using the same versions of Python, Chrome and chromedriver. The
>>> tests still pass every time. Are you sure you applied the latest patch? I
>>> re-created the patch as a sanity check, please find it attached.
>>>
>>> I tried running the specific test a lot of times, passes every time. The
>>> only difference is that I am running Ubuntu, otherwise, everything is the
>>> same.
>>>
>>>
>>> On Fri, Aug 23, 2019 at 5:00 PM Dave Page <dp...@pgadmin.org> wrote:
>>>
>>>> Hi
>>>>
>>>> I've run it again 4 more times and it fails consistently for me. I'm
>>>> running on macOS 10.14.5 with Chrome 76.0.3809.100.
>>>>
>>>> On Fri, Aug 23, 2019 at 3:17 PM Yosry Muhammad <yosry...@gmail.com>
>>>> wrote:
>>>>
>>>>> Hi Dave,
>>>>>
>>>>> The tests pass on my device normally. I am using Python 3.6 on Ubuntu.
>>>>> I have ran all tests using "make check" and they all succeeded. I also ran
>>>>> feature_tests/query_tool_journey_test.py multiple times on its own using
>>>>> "cd web && python regression/runtests.py --pkg feature_tests --modules
>>>>> query_tool_journey_test" and it passed successfully. Could you try again?
>>>>>
>>>>> Generally, I have found that StaleElementReferenceException occurs
>>>>> intermittently on various feature tests.
>>>>>
>>>>> On Fri, Aug 23, 2019 at 3:46 PM Dave Page <dp...@pgadmin.org> wrote:
>>>>>
>>>>>> Thanks. Unfortunately this is failing the tests:
>>>>>>
>>>>>> ======================================================================
>>>>>> ERROR: runTest
>>>>>> (pgadmin.feature_tests.query_tool_journey_test.QueryToolJourneyTest)
>>>>>> Tests the path through the query tool
>>>>>> ----------------------------------------------------------------------
>>>>>> Traceback (most recent call last):
>>>>>>   File
>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_journey_test.py",
>>>>>> line 85, in runTest
>>>>>>     self._test_updatable_resultset()
>>>>>>   File
>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_journey_test.py",
>>>>>> line 254, in _test_updatable_resultset
>>>>>>     discard_changes_modal=True)
>>>>>>   File
>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_journey_test.py",
>>>>>> line 417, in _check_query_results_editable
>>>>>>     is_editable = self._check_cell_editable(column_index)
>>>>>>   File
>>>>>> "/Users/dpage/git/pgadmin4/web/pgadmin/feature_tests/query_tool_journey_test.py",
>>>>>> line 430, in _check_cell_editable
>>>>>>     cell_value = int(cell_el.text)
>>>>>>   File
>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
>>>>>> line 76, in text
>>>>>>     return self._execute(Command.GET_ELEMENT_TEXT)['value']
>>>>>>   File
>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webelement.py",
>>>>>> line 628, in _execute
>>>>>>     return self._parent.execute(command, params)
>>>>>>   File
>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/webdriver.py",
>>>>>> line 312, in execute
>>>>>>     self.error_handler.check_response(response)
>>>>>>   File
>>>>>> "/Users/dpage/.virtualenvs/pgadmin4/lib/python3.7/site-packages/selenium/webdriver/remote/errorhandler.py",
>>>>>> line 242, in check_response
>>>>>>     raise exception_class(message, screen, stacktrace)
>>>>>> selenium.common.exceptions.StaleElementReferenceException: Message:
>>>>>> stale element reference: element is not attached to the page document
>>>>>>   (Session info: chrome=76.0.3809.100)
>>>>>>   (Driver info: chromedriver=76.0.3809.126
>>>>>> (d80a294506b4c9d18015e755cee48f953ddc3f2f-refs/branch-heads/3809@{#1024}),platform=Mac
>>>>>> OS X 10.14.5 x86_64)
>>>>>>
>>>>>> Without the patch, the tests pass.
>>>>>>
>>>>>>
>>>>>> On Fri, Aug 23, 2019 at 1:10 PM Yosry Muhammad <yosry...@gmail.com>
>>>>>> wrote:
>>>>>>
>>>>>>> Please find an updated patch attached.
>>>>>>>
>>>>>>> On Fri, Aug 23, 2019 at 1:22 PM Dave Page <dp...@pgadmin.org> wrote:
>>>>>>>
>>>>>>>> Except it now doesn't apply as the async connection/rendering patch
>>>>>>>> was in the queue right ahead of it :-(.
>>>>>>>>
>>>>>>>> Can I get a rebased patch please?
>>>>>>>>
>>>>>>>> On Fri, Aug 23, 2019 at 11:57 AM Aditya Toshniwal <
>>>>>>>> aditya.toshni...@enterprisedb.com> wrote:
>>>>>>>>
>>>>>>>>> Excellent !! Looks good to me.
>>>>>>>>>
>>>>>>>>> On Fri, Aug 23, 2019 at 2:23 PM Yosry Muhammad <yosry...@gmail.com>
>>>>>>>>> wrote:
>>>>>>>>>
>>>>>>>>>>  I updated the patch for backwards compatibility anyway.
>>>>>>>>>>
>>>>>>>>>> On Fri, Aug 23, 2019 at 10:45 AM Dave Page <dp...@pgadmin.org>
>>>>>>>>>> wrote:
>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Fri, Aug 23, 2019 at 9:43 AM Yosry Muhammad <
>>>>>>>>>>> yosry...@gmail.com> wrote:
>>>>>>>>>>>
>>>>>>>>>>>> Hi Aditya,
>>>>>>>>>>>>
>>>>>>>>>>>> On Fri, Aug 23, 2019 at 7:33 AM Aditya Toshniwal <
>>>>>>>>>>>> aditya.toshni...@enterprisedb.com> wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> Hi Yosry,
>>>>>>>>>>>>>
>>>>>>>>>>>>> The previously mentioned issues seems to be fixed. Below are
>>>>>>>>>>>>> few issues:
>>>>>>>>>>>>> 1) On Python 2.7, I get below error when opening query tool:
>>>>>>>>>>>>> 2019-08-23 10:49:09,329: ERROR flask.app: Object of type
>>>>>>>>>>>>> buffer is not JSON serializable
>>>>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/flask/app.py",
>>>>>>>>>>>>> line 1813, in full_dispatch_request
>>>>>>>>>>>>>     rv = self.dispatch_request()
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/flask/app.py",
>>>>>>>>>>>>> line 1799, in dispatch_request
>>>>>>>>>>>>>     return self.view_functions[rule.endpoint](**req.view_args)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/flask_login/utils.py",
>>>>>>>>>>>>> line 261, in decorated_view
>>>>>>>>>>>>>     return func(*args, **kwargs)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/__init__.py",
>>>>>>>>>>>>> line 1544, in get_query_history
>>>>>>>>>>>>>     return QueryHistory.get(current_user.id, trans_obj.sid,
>>>>>>>>>>>>> conn.db)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/utils/query_history.py",
>>>>>>>>>>>>> line 21, in get
>>>>>>>>>>>>>     'result': [rec.query_info for rec in result]
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/utils/ajax.py",
>>>>>>>>>>>>>  line
>>>>>>>>>>>>> 75, in make_json_response
>>>>>>>>>>>>>     separators=(',', ':'), encoding=encoding),
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/__init__.py",
>>>>>>>>>>>>> line 399, in dumps
>>>>>>>>>>>>>     **kw).encode(obj)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/encoder.py",
>>>>>>>>>>>>> line 296, in encode
>>>>>>>>>>>>>     chunks = self.iterencode(o, _one_shot=True)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/encoder.py",
>>>>>>>>>>>>> line 378, in iterencode
>>>>>>>>>>>>>     return _iterencode(o, 0)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/utils/ajax.py",
>>>>>>>>>>>>>  line
>>>>>>>>>>>>> 30, in default
>>>>>>>>>>>>>     return json.JSONEncoder.default(self, obj)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg27/lib/python2.7/site-packages/simplejson/encoder.py",
>>>>>>>>>>>>> line 273, in default
>>>>>>>>>>>>>     o.__class__.__name__)
>>>>>>>>>>>>> TypeError: Object of type buffer is not JSON serializable
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> This error exists on the master branch on Python 2.7, it is not
>>>>>>>>>>>> caused by the patch. It is also not a regression of my previous 
>>>>>>>>>>>> Query
>>>>>>>>>>>> History Enhancement patch, I checked.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> 2) The patch is not compatible with older pyscopg2 (2.7.7). I
>>>>>>>>>>>>> get below error in View/Edit data.
>>>>>>>>>>>>> [image: Screenshot 2019-08-23 at 10.53.30.png]
>>>>>>>>>>>>> 2019-08-23 10:53:12,020: ERROR flask.app: 'table_column'
>>>>>>>>>>>>> Traceback (most recent call last):
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg35/lib/python3.5/site-packages/flask/app.py",
>>>>>>>>>>>>> line 1813, in full_dispatch_request
>>>>>>>>>>>>>     rv = self.dispatch_request()
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg35/lib/python3.5/site-packages/flask/app.py",
>>>>>>>>>>>>> line 1799, in dispatch_request
>>>>>>>>>>>>>     return self.view_functions[rule.endpoint](**req.view_args)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/venv/pypg35/lib/python3.5/site-packages/flask_login/utils.py",
>>>>>>>>>>>>> line 261, in decorated_view
>>>>>>>>>>>>>     return func(*args, **kwargs)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/__init__.py",
>>>>>>>>>>>>> line 435, in poll
>>>>>>>>>>>>>     columns = trans_obj.get_columns_types(conn)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/command.py",
>>>>>>>>>>>>> line 688, in get_columns_types
>>>>>>>>>>>>>     table_oid=table_oid)
>>>>>>>>>>>>>   File
>>>>>>>>>>>>> "/Users/adityatoshniwal/projects/pgadmin4/web/pgadmin/tools/sqleditor/utils/get_column_types.py",
>>>>>>>>>>>>> line 38, in get_columns_types
>>>>>>>>>>>>>     if row['oid'] == col['table_column']:
>>>>>>>>>>>>> KeyError: 'table_column'
>>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> I recall Dave mentioning that it is okay to use psycopg 2.8+
>>>>>>>>>>>> features and that it was a requirement of pgAdmin 4 now (clearly 
>>>>>>>>>>>> mentioned
>>>>>>>>>>>> in requirements.txt too).
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I did - then we had the whole table_oid issue on Debian/Ubuntu
>>>>>>>>>>> :-(
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>> However, I updated the patch for backwards compatibility.
>>>>>>>>>>>> Please find an updated patch attached.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> *Yosry Muhammad Yosry*
>>>>>>>>>>>>
>>>>>>>>>>>> Computer Engineering student,
>>>>>>>>>>>> The Faculty of Engineering,
>>>>>>>>>>>> Cairo University (2021).
>>>>>>>>>>>> Class representative of CMP 2021.
>>>>>>>>>>>> https://www.linkedin.com/in/yosrym93/
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Dave Page
>>>>>>>>>>> Blog: http://pgsnake.blogspot.com
>>>>>>>>>>> Twitter: @pgsnake
>>>>>>>>>>>
>>>>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>>>>>>>>> The Enterprise PostgreSQL Company
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> *Yosry Muhammad Yosry*
>>>>>>>>>>
>>>>>>>>>> Computer Engineering student,
>>>>>>>>>> The Faculty of Engineering,
>>>>>>>>>> Cairo University (2021).
>>>>>>>>>> Class representative of CMP 2021.
>>>>>>>>>> https://www.linkedin.com/in/yosrym93/
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> Thanks and Regards,
>>>>>>>>> Aditya Toshniwal
>>>>>>>>> Software Engineer | EnterpriseDB India | Pune
>>>>>>>>> "Don't Complain about Heat, Plant a TREE"
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Dave Page
>>>>>>>> Blog: http://pgsnake.blogspot.com
>>>>>>>> Twitter: @pgsnake
>>>>>>>>
>>>>>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>>>>>> The Enterprise PostgreSQL Company
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> *Yosry Muhammad Yosry*
>>>>>>>
>>>>>>> Computer Engineering student,
>>>>>>> The Faculty of Engineering,
>>>>>>> Cairo University (2021).
>>>>>>> Class representative of CMP 2021.
>>>>>>> https://www.linkedin.com/in/yosrym93/
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Dave Page
>>>>>> Blog: http://pgsnake.blogspot.com
>>>>>> Twitter: @pgsnake
>>>>>>
>>>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>>>> The Enterprise PostgreSQL Company
>>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> *Yosry Muhammad Yosry*
>>>>>
>>>>> Computer Engineering student,
>>>>> The Faculty of Engineering,
>>>>> Cairo University (2021).
>>>>> Class representative of CMP 2021.
>>>>> https://www.linkedin.com/in/yosrym93/
>>>>>
>>>>
>>>>
>>>> --
>>>> Dave Page
>>>> Blog: http://pgsnake.blogspot.com
>>>> Twitter: @pgsnake
>>>>
>>>> EnterpriseDB UK: http://www.enterprisedb.com
>>>> The Enterprise PostgreSQL Company
>>>>
>>>
>>>
>>> --
>>> *Yosry Muhammad Yosry*
>>>
>>> Computer Engineering student,
>>> The Faculty of Engineering,
>>> Cairo University (2021).
>>> Class representative of CMP 2021.
>>> https://www.linkedin.com/in/yosrym93/
>>>
>>
>>
>> --
>> Thanks and Regards,
>> Aditya Toshniwal
>> Software Engineer | EnterpriseDB India | Pune
>> "Don't Complain about Heat, Plant a TREE"
>>
>

Reply via email to