We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
There was an error while loading. Please reload this page.
1 parent 7ace725 commit 89f87abCopy full SHA for 89f87ab
py/selenium/webdriver/common/utils.py
@@ -27,9 +27,17 @@
27
28
29
def free_port() -> int:
30
- """Determines a free port using sockets."""
31
- free_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
32
- free_socket.bind(("127.0.0.1", 0))
+ """Determines a free port using sockets.
+
+ First try IPv4, but use IPv6 if it doesn't exist (IPv6-only system).
33
+ """
34
+ try:
35
+ # IPv4
36
+ free_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
37
+ free_socket.bind(("127.0.0.1", 0))
38
+ except OSError:
39
+ free_socket = socket.socket(socket.AF_INET6, socket.SOCK_STREAM)
40
+ free_socket.bind(("::1", 0))
41
free_socket.listen(5)
42
port: int = free_socket.getsockname()[1]
43
free_socket.close()
0 commit comments