diff --git a/tests/auto/quick/qmltests/data/keyboardModifierMapping.html b/tests/auto/quick/qmltests/data/keyboardModifierMapping.html
index b6d2912079dccf94cc34b001b6b7a075adf5869b..4652bf5dabd449279a4c65fe574e2a96af5c5f58 100644
--- a/tests/auto/quick/qmltests/data/keyboardModifierMapping.html
+++ b/tests/auto/quick/qmltests/data/keyboardModifierMapping.html
@@ -15,6 +15,7 @@ document.body.onkeydown = function(e) {
     if (e.metaKey)
         meta_state.textContent = 'pressed'
     last_keycode.textContent = e.keyCode
+    document.title = "Key pressed";
 };
 document.body.onkeyup = function(e) {
     if (e.altKey)
@@ -24,6 +25,7 @@ document.body.onkeyup = function(e) {
     if (e.metaKey)
         meta_state.textContent = 'released'
     last_keycode.textContent = e.keyCode
+    document.title = "Key released";
 };
 
 function getPressedModifiers() {
diff --git a/tests/auto/quick/qmltests/data/tst_keyboardModifierMapping.qml b/tests/auto/quick/qmltests/data/tst_keyboardModifierMapping.qml
index 1d8fb0ed55f8cd38f027d5edc1c37430e4c8abed..230ee9635040335f63c58639d65316001bb54466 100644
--- a/tests/auto/quick/qmltests/data/tst_keyboardModifierMapping.qml
+++ b/tests/auto/quick/qmltests/data/tst_keyboardModifierMapping.qml
@@ -49,7 +49,7 @@ TestWebEngineView {
     height: 300
 
     SignalSpy {
-        id: spy
+        id: titleSpy
         target: webEngineView
         signalName: "titleChanged"
     }
@@ -68,10 +68,12 @@ TestWebEngineView {
         function test_keyboardModifierMapping() {
             webEngineView.url = Qt.resolvedUrl("keyboardModifierMapping.html")
             waitForLoadSucceeded();
+            titleSpy.wait()
             var callbackCalled = false;
 
             // Alt
             keyPress(Qt.Key_Alt);
+            titleSpy.wait()
             runJavaScript("getPressedModifiers()", function(result) {
                     compare(result, "alt:pressed ctrl:no meta:no");
                     callbackCalled = true;
@@ -79,6 +81,7 @@ TestWebEngineView {
             wait(100);
             verify(callbackCalled);
             keyRelease(Qt.Key_Alt)
+            titleSpy.wait()
             callbackCalled = false;
 
             // Ctrl
@@ -87,6 +90,7 @@ TestWebEngineView {
             // so we have to do this here manually.
             // For testing we assume that the flag Qt::AA_MacDontSwapCtrlAndMeta is NOT set.
             keyPress(Qt.platform.os == "osx" ? Qt.Key_Meta : Qt.Key_Control);
+            titleSpy.wait()
             runJavaScript("getPressedModifiers()", function(result) {
                     compare(result, "alt:released ctrl:pressed meta:no");
                     callbackCalled = true;
@@ -94,10 +98,12 @@ TestWebEngineView {
             wait(100);
             verify(callbackCalled);
             keyRelease(Qt.platform.os == "osx" ? Qt.Key_Meta : Qt.Key_Control);
+            titleSpy.wait()
             callbackCalled = false;
 
             // Meta (Command on Mac)
             keyPress(Qt.platform.os == "osx" ? Qt.Key_Control : Qt.Key_Meta);
+            titleSpy.wait()
             runJavaScript("getPressedModifiers()", function(result) {
                     compare(result, "alt:released ctrl:released meta:pressed");
                     callbackCalled = true;
@@ -105,6 +111,7 @@ TestWebEngineView {
             wait(100);
             verify(callbackCalled);
             keyRelease(Qt.platform.os == "osx" ? Qt.Key_Control : Qt.Key_Meta);
+            titleSpy.wait()
             callbackCalled = false;
 
             runJavaScript("getPressedModifiers()", function(result) {