diff --git a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue
index e20cf299c2abe8d68e8c47c6551c58a9949e0f49..288d671168223be2c73013fc020ab2b6efa600da 100644
--- a/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue
+++ b/app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue
@@ -218,6 +218,7 @@ export default {
               id="fork-url"
               v-model="selectedNamespace"
               data-testid="fork-url-input"
+              data-qa-selector="fork_namespace_dropdown"
               required
             >
               <template slot="first">
@@ -291,6 +292,7 @@ export default {
         category="primary"
         variant="confirm"
         data-testid="submit-button"
+        data-qa-selector="fork_project_button"
         :loading="isSaving"
       >
         {{ s__('ForkProject|Fork project') }}
diff --git a/qa/qa/page/project/fork/new.rb b/qa/qa/page/project/fork/new.rb
index bbdd4748f5c59ec61e89f2c069edc459cd15b141..5a08f6a3cbdd6fb0180b189d8e3948c20c256149 100644
--- a/qa/qa/page/project/fork/new.rb
+++ b/qa/qa/page/project/fork/new.rb
@@ -13,8 +13,18 @@ class New < Page::Base
             element :fork_groups_list_search_field
           end
 
-          def choose_namespace(namespace = Runtime::Namespace.path)
-            click_element(:fork_namespace_button, name: namespace)
+          view 'app/assets/javascripts/pages/projects/forks/new/components/fork_form.vue' do
+            element :fork_namespace_dropdown
+            element :fork_project_button
+          end
+
+          def fork_project(namespace = Runtime::Namespace.path)
+            if has_element?(:fork_namespace_button, wait: 0)
+              click_element(:fork_namespace_button, name: namespace)
+            else
+              select_element(:fork_namespace_dropdown, namespace)
+              click_element(:fork_project_button)
+            end
           end
 
           def search_for_group(group_name)
diff --git a/qa/qa/resource/fork.rb b/qa/qa/resource/fork.rb
index d0aaaae6a11d229742966919fc2c6fd947193e08..106d1d5548a863b746d43fa56693809c835b0448 100644
--- a/qa/qa/resource/fork.rb
+++ b/qa/qa/resource/fork.rb
@@ -3,6 +3,8 @@
 module QA
   module Resource
     class Fork < Base
+      attr_accessor :namespace_path
+
       attribute :name do
         upstream.name
       end
@@ -31,6 +33,8 @@ class Fork < Base
       def fabricate!
         populate(:upstream, :user)
 
+        namespace_path ||= user.name
+
         # Sign out as admin and sign is as the fork user
         Page::Main::Menu.perform(&:sign_out)
         Runtime::Browser.visit(:gitlab, Page::Main::Login)
@@ -43,11 +47,11 @@ def fabricate!
         Page::Project::Show.perform(&:fork_project)
 
         Page::Project::Fork::New.perform do |fork_new|
-          fork_new.choose_namespace(user.name)
+          fork_new.fork_project(namespace_path)
         end
 
-        Page::Layout::Banner.perform do |banner|
-          banner.has_notice?('The project was successfully forked.')
+        Page::Project::Show.perform do |project_page|
+          raise ResourceFabricationFailedError, "Forking failed!" unless project_page.forked_from?(upstream.name)
         end
 
         populate(:project)
diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb
index 1fe354f2f7b4d4d088783c98276284e953971673..c2e148e19bd91ecda7fc51d881913c4e7c0a8f1c 100644
--- a/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb
+++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/merge_merge_request_from_fork_spec.rb
@@ -2,14 +2,12 @@
 
 module QA
   RSpec.describe 'Create' do
-    describe 'Merge request creation from fork' do
-      let!(:merge_request) do
-        Resource::MergeRequestFromFork.fabricate_via_browser_ui! do |merge_request|
+    describe 'Merge request creation from fork', :smoke do
+      it 'can merge feature branch fork to mainline', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1701' do
+        merge_request = Resource::MergeRequestFromFork.fabricate_via_browser_ui! do |merge_request|
           merge_request.fork_branch = 'feature-branch'
         end
-      end
 
-      it 'can merge feature branch fork to mainline', testcase: 'https://gitlab.com/gitlab-org/quality/testcases/-/issues/1701' do
         Flow::Login.while_signed_in do
           merge_request.visit!