diff --git a/constraints.txt b/constraints.txt
index 837cff6..cc13b2b 100644
--- a/constraints.txt
+++ b/constraints.txt
@@ -16,14 +16,10 @@ certifi==2023.5.7
     # via
     #   requests
     #   selenium
-cffi==1.15.1
-    # via cryptography
 charset-normalizer==3.1.0
     # via requests
 confusable-homoglyphs==3.2.0
     # via django-registration
-cryptography==41.0.1
-    # via django-anymail
 django==4.2.2
     # via
     #   -r requirements.in
@@ -65,15 +61,13 @@ outcome==1.2.0
     # via trio
 pillow==9.5.0
     # via -r requirements.in
-pycparser==2.21
-    # via cffi
 pysocks==1.7.1
     # via urllib3
 requests==2.31.0
     # via
     #   -r requirements.in
     #   django-anymail
-selenium==4.10.0
+selenium==4.9.1
     # via -r requirements.in
 sniffio==1.3.0
     # via trio
diff --git a/requirements-dev.txt b/requirements-dev.txt
index ee3585d..a797afc 100644
--- a/requirements-dev.txt
+++ b/requirements-dev.txt
@@ -159,7 +159,7 @@ requests==2.31.0
     #   pytest-selenium
 ruff==0.0.275
     # via -r requirements-dev.in
-selenium==4.10.0
+selenium==4.9.1
     # via
     #   -c constraints.txt
     #   pytest-selenium
diff --git a/requirements.in b/requirements.in
index cd3aac7..f9f5b5e 100644
--- a/requirements.in
+++ b/requirements.in
@@ -5,7 +5,10 @@ django-htmx>=1.12.2
 django-linear-migrations>=2.2.0
 django-extensions>=3.1.5
 whitenoise>=6.2
-selenium>=4.5.0
+# pytest-selenium is broken with selenium 4.10.0
+# TypeError: WebDriver.__init__() got an unexpected keyword argument 'service_log_path'
+# https://github.com/robotframework/SeleniumLibrary/issues/1835
+selenium>=4.5.0,<4.10.0
 Markdown>=3.2
 django-registration>=3.3
 django-anymail[mailgun]>=8.6
diff --git a/requirements.txt b/requirements.txt
index 53608ca..d5267b4 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -16,14 +16,10 @@ certifi==2023.5.7
     # via
     #   requests
     #   selenium
-cffi==1.15.1
-    # via cryptography
 charset-normalizer==3.1.0
     # via requests
 confusable-homoglyphs==3.2.0
     # via django-registration
-cryptography==41.0.1
-    # via django-anymail
 django==4.2.2
     # via
     #   -r requirements.in
@@ -65,15 +61,13 @@ outcome==1.2.0
     # via trio
 pillow==9.5.0
     # via -r requirements.in
-pycparser==2.21
-    # via cffi
 pysocks==1.7.1
     # via urllib3
 requests==2.31.0
     # via
     #   -r requirements.in
     #   django-anymail
-selenium==4.10.0
+selenium==4.9.1
     # via -r requirements.in
 sniffio==1.3.0
     # via trio