Skip to content

Incorrect error-handling for "DevToolsActivePort file doesn't exist" when using Edge #2041

@mdmintz

Description

@mdmintz

Incorrect error-handling for "DevToolsActivePort file doesn't exist" when using Edge

The following error occurs: "UnboundLocalError: local variable 'args' referenced before assignment" if "DevToolsActivePort file doesn't exist" occurs during Edge tests.

Seen here: https://github.com/mdmintz/seleniumbase-examples/actions/runs/6013971396/job/16312640632

Here's the code block with the issue:

            elif "DevToolsActivePort file doesn't exist" in e.msg:
                service = EdgeService(
                    executable_path=LOCAL_EDGEDRIVER,
                    log_output=os.devnull,
                    service_args=["--disable-build-check"],
                )
                # https://stackoverflow.com/a/56638103/7058266
                sys_argv = sys.argv
                arg_join = " ".join(sys_argv)
                free_port = 9222
                if ("-n" in sys.argv or " -n=" in args or args == "-c"):
                    free_port = service_utils.free_port()
                    edge_options.add_argument(
                        "--remote-debugging-port=%s" % free_port
                    )
                    return Edge(service=service, options=edge_options)

Switching with this does the trick (use args everywhere instead of arg_join, and refactor):

                elif "DevToolsActivePort file doesn't exist" in e.msg:
                    service = EdgeService(
                        executable_path=LOCAL_EDGEDRIVER,
                        log_output=os.devnull,
                        service_args=["--disable-build-check"],
                    )
                    # https://stackoverflow.com/a/56638103/7058266
                    args = " ".join(sys.argv)
                    free_port = 9222
                    if ("-n" in sys.argv or " -n=" in args or args == "-c"):
                        free_port = service_utils.free_port()
                    edge_options.add_argument(
                        "--remote-debugging-port=%s" % free_port
                    )
                    return Edge(service=service, options=edge_options)

Metadata

Metadata

Assignees

Labels

bugUh oh... Something needs to be fixed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions