Makes sense. Thanks a lot for your help :) On Sat, Aug 24, 2019, 8:40 AM Aditya Toshniwal < aditya.toshni...@enterprisedb.com> wrote:
> 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" >>> >>