J'ai enfin trouvé la solution pour ceux qui utilisent une machine Windows pour exécuter les tests en utilisant n'importe quelle méthode. L'implémentation n'est pas en Java, mais vous pouvez le faire très facilement.
Utilisation AutoIt
l'outil. Il dispose de toutes les capacités nécessaires pour gérer Windows. Il s'agit d'un outil gratuit.
-
Installer AutoIt : http://www.autoitscript.com/site/autoit/downloads/
-
Ouvrez l'éditeur et écrivez le code ci-dessous pour masquer n'importe quelle fenêtre.
AutoItSetOption("WinTitleMatchMode", 2)
WinSetState("Title Of Your Window", "", @SW_HIDE)
-
Pour l'effacer, vous pouvez utiliser la ligne de code ci-dessous.
AutoItSetOption("WinTitleMatchMode", 2)
WinSetState("Title Of Your Window", "", @SW_SHOW)
WinTitleMatchMode
dispose de différentes options qui peuvent être utilisées pour faire correspondre le titre de Windows.
1 = Match the title from the start (default)`
2 = Match any substring in the title
3 = Exact title match
4 = Advanced mode, see Window Titles & Text (Advanced)
Ce que j'ai fait, c'est que J'ai créé un fichier .exe d'un petit programme et j'ai passé un paramètre comme argument de ligne de commande comme ci-dessous.
Runtime.getRuntime().exec("C:/Diiinnovation/HideNSeek.exe 0 \"" + "Mozilla Firefox" + "\"");
en HideNSeek.exe
- J'ai le code AutoIt ci-dessous :
AutoItSetOption("WinTitleMatchMode", 1)
if $CmdLine[0] > 0 Then
if $CmdLine[1] == 0 Then
WinSetState($CmdLine[2], "", @SW_HIDE)
ElseIf $CmdLine[1] == 1 Then
WinSetState($CmdLine[2], "", @SW_SHOW)
Else
EndIf
EndIf
$CmdLine[]
est un tableau, qui contiendra tous les paramètres de la ligne de commande...
$CmdLine[0] = number of Parameter
$CmdLine[1] = 1st Parameter after Exe Name
...
S'il y a un espace dans le titre de la fenêtre, vous devez utiliser des guillemets doubles pour le passer en tant que paramètre de la ligne de commande comme ci-dessus.
La ligne de code ci-dessous exécutera l'exe AutoIt et si je passe le code '0' dans le 1er paramètre, il cachera la fenêtre et si je passe le paramètre '1' et il masquera les fenêtres correspondant au titre.
Runtime.getRuntime().exec("C:/Diiinnovation/HideNSeek.exe 0 \"" + "Mozilla Firefox" + "\"");
J'espère que cela vous aidera. Je vous remercie.
0 votes
Très lié (pour les autres navigateurs) : Selenium WebDriver peut-il ouvrir des fenêtres de navigation en arrière-plan ? -- contient cette réponse qui utilise pyvirtualdisplay, qui n'est pas mentionné ici .