diff --git a/constraints.txt b/constraints.txt
index 63eb324..0adf85c 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -67,7 +67,7 @@ requests==2.32.3
     # via
     #   -r requirements.in
     #   django-anymail
-selenium==4.26.1
+selenium==4.27.0
     # via -r requirements.in
 sniffio==1.3.1
     # via trio
diff --git a/requirements-dev.txt b/requirements-dev.txt
index be667e7..d3f2c6f 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -38,7 +38,7 @@ click==8.1.7
     # via
     #   black
     #   pip-tools
-coverage[toml]==7.6.7
+coverage[toml]==7.6.8
     # via pytest-cov
 curtsies==0.4.2
     # via bpython
@@ -66,7 +66,7 @@ h11==0.14.0
     # via
     #   -c constraints.txt
     #   wsproto
-hypothesis==6.119.3
+hypothesis==6.119.4
     # via -r requirements-dev.in
 identify==2.6.2
     # via pre-commit
@@ -155,9 +155,9 @@ requests==2.32.3
     #   bpython
     #   pytest-base-url
     #   pytest-selenium
-ruff==0.7.4
+ruff==0.8.0
     # via -r requirements-dev.in
-selenium==4.26.1
+selenium==4.27.0
     # via
     #   -c constraints.txt
     #   pytest-selenium
@@ -205,7 +205,7 @@ websocket-client==1.8.0
     # via
     #   -c constraints.txt
     #   selenium
-wheel==0.45.0
+wheel==0.45.1
     # via pip-tools
 wsproto==1.2.0
     # via
@@ -215,5 +215,5 @@ wsproto==1.2.0
 # The following packages are considered to be unsafe in a requirements file:
 pip==24.3.1
     # via pip-tools
-setuptools==75.5.0
+setuptools==75.6.0
     # via pip-tools
diff --git a/requirements.txt b/requirements.txt
index b842b18..1fb6e67 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -67,7 +67,7 @@ requests==2.32.3
     # via
     #   -r requirements.in
     #   django-anymail
-selenium==4.26.1
+selenium==4.27.0
     # via -r requirements.in
 sniffio==1.3.1
     # via trio