)]}'
{"playbooks/zuul/gerrit/run.yaml":[{"author":{"_account_id":5263,"name":"Jeremy Stanley","display_name":"fungi","email":"fungi@yuggoth.org","username":"fungi","status":"missing, presumed fed"},"change_message_id":"f729878e6168d55496b9731441cd4c044589f0ab","unresolved":false,"context_lines":[{"line_number":13,"context_line":"        zuul_work_dir: /home/zuul/src/gerrit.googlesource.com/gerrit"},{"line_number":14,"context_line":"        # NOTE(ianw): There doesn\u0027t seem to be a way to integrate"},{"line_number":15,"context_line":"        # polygerrit/javascript plugins into the standard \"release\""},{"line_number":16,"context_line":"        # target; we add plugins as separate targets here"},{"line_number":17,"context_line":"        bazelisk_targets:"},{"line_number":18,"context_line":"          - release"},{"line_number":19,"context_line":"          - plugins/zuul-results-summary:zuul-results-summary"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"366b742c_f011454a","line":16,"updated":"2021-01-15 21:46:01.000000000","message":"The \"Install OpenDev theme plugin\" also installs a plugin, though it doesn\u0027t require a build step as it\u0027s a static HTML file. Should we do something to incorporate it here instead for consistency?","commit_id":"8c07155ae9e42079b2f12d1e6fc34c8e05ef92e3"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"82d4d03e6a349ca20d8b21ae1d2237ba87945603","unresolved":true,"context_lines":[{"line_number":13,"context_line":"        zuul_work_dir: /home/zuul/src/gerrit.googlesource.com/gerrit"},{"line_number":14,"context_line":"        # NOTE(ianw): There doesn\u0027t seem to be a way to integrate"},{"line_number":15,"context_line":"        # polygerrit/javascript plugins into the standard \"release\""},{"line_number":16,"context_line":"        # target; we add plugins as separate targets here"},{"line_number":17,"context_line":"        bazelisk_targets:"},{"line_number":18,"context_line":"          - release"},{"line_number":19,"context_line":"          - plugins/zuul-results-summary:zuul-results-summary"}],"source_content_type":"text/x-yaml","patch_set":19,"id":"b1370bee_cf939ebf","line":16,"in_reply_to":"366b742c_f011454a","updated":"2021-01-18 05:59:51.000000000","message":"In all honesty I have no idea.  It would probably require it to be added in a separate repo, with it\u0027s on .bzl file to be a target.  I doubt it\u0027s worth it at it\u0027s current complexity level ... but if it ever grows more files, minimised javascript that needs to run via some sort of parser, etc. it might be?","commit_id":"8c07155ae9e42079b2f12d1e6fc34c8e05ef92e3"}],"testinfra/test_gerrit.py":[{"author":{"_account_id":2,"name":"Monty Taylor","email":"mordred@inaugust.com","username":"mordred"},"change_message_id":"2645ba255edbfcc299660c5eef90aa63a6f597bc","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        driver.save_screenshot(\"/var/log/screenshots/gerrit-main-page.png\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        driver.get(\"http://localhost:8081/c/test-project/+/1\")"},{"line_number":41,"context_line":"        time.sleep(5)"},{"line_number":42,"context_line":"        driver.execute_script("},{"line_number":43,"context_line":"            \"document.querySelector(\u0027gr-app\u0027).shadowRoot\""},{"line_number":44,"context_line":"            \".querySelector(\u0027gr-app-element\u0027).shadowRoot\""}],"source_content_type":"text/x-python","patch_set":19,"id":"19262c40_f25f3977","line":41,"updated":"2020-12-17 21:18:19.000000000","message":"I wonder - can you do a driver.execute_script() in a loop looking for a document.querySelector and waiting until it returns something rather than just doing the sleep? I mean- it looks like you were doing someting like that with document.readyState right?","commit_id":"8c07155ae9e42079b2f12d1e6fc34c8e05ef92e3"},{"author":{"_account_id":7118,"name":"Ian Wienand","email":"iwienand@redhat.com","username":"iwienand"},"change_message_id":"a0e187f8b7adfd3034c8e20689924e51cd721c12","unresolved":true,"context_lines":[{"line_number":38,"context_line":"        driver.save_screenshot(\"/var/log/screenshots/gerrit-main-page.png\")"},{"line_number":39,"context_line":""},{"line_number":40,"context_line":"        driver.get(\"http://localhost:8081/c/test-project/+/1\")"},{"line_number":41,"context_line":"        time.sleep(5)"},{"line_number":42,"context_line":"        driver.execute_script("},{"line_number":43,"context_line":"            \"document.querySelector(\u0027gr-app\u0027).shadowRoot\""},{"line_number":44,"context_line":"            \".querySelector(\u0027gr-app-element\u0027).shadowRoot\""}],"source_content_type":"text/x-python","patch_set":19,"id":"aa36f3cb_26e92b15","line":41,"in_reply_to":"19262c40_f25f3977","updated":"2020-12-17 21:57:27.000000000","message":"Yep I think so.  selenium has lots of natvie stuff to wait and to see an element; but because of the use of shadowdom it (AFAICT) defeats every dom/xpath/css selector method it has for finding elements.\n\nHowever, as you suggest, we can probably do a \"while not found\" loop with a similar querySelector into parts of the shadowdom until ... something (not sure what) ... appears","commit_id":"8c07155ae9e42079b2f12d1e6fc34c8e05ef92e3"}]}
