Cleaned yersteday's log book

This commit is contained in:
2023-05-02 08:18:03 +02:00
parent 3e6ea07b0b
commit 318a12f083
+105 -1
View File
@@ -1854,7 +1854,7 @@ Je crois que je n'aurais pas du me reveiller aujourd'hui.
Bon je vais tenter d'avancer sur mon poster en attendant que le réseau soit en meilleur état. Bon je vais tenter d'avancer sur mon poster en attendant que le réseau soit en meilleur état.
## Lundi 1 Avril 2023 ## Lundi 1 Mai 2023
Bon je bosse depuis chez moi donc j'espère que Nuget va mieux fonctionner. Bon je bosse depuis chez moi donc j'espère que Nuget va mieux fonctionner.
@@ -1863,4 +1863,108 @@ Après un weekend à réfléchir au sujet de cette resolution je me suis dit deu
1. La seule personne sur internet que j'ai vu avoir le meme soucis avait une résolution de 1920x1200 comme moi. Cela veut donc sûrement dire que le soucis vient de cette résolution de laptop comme moi. 1. La seule personne sur internet que j'ai vu avoir le meme soucis avait une résolution de 1920x1200 comme moi. Cela veut donc sûrement dire que le soucis vient de cette résolution de laptop comme moi.
2. Si vraiment je n'arrive pas dans un premier temps à faire fonctionner le Headless correctement, je peux toujours laisser la page de côté et m'occuper du reste du programme. Certes ca serait vraiment infernal d'avoir à garder une page chrome ouvert en tous temps et en plus elle doit être en plein écran mais bon... Si il n'y a vraiment pas d'autres solutions malheureusement je serai bien obligé. 2. Si vraiment je n'arrive pas dans un premier temps à faire fonctionner le Headless correctement, je peux toujours laisser la page de côté et m'occuper du reste du programme. Certes ca serait vraiment infernal d'avoir à garder une page chrome ouvert en tous temps et en plus elle doit être en plein écran mais bon... Si il n'y a vraiment pas d'autres solutions malheureusement je serai bien obligé.
BON ! JE N'ARRIVE MEME PLUS A FAIRE UN PROJET QUI UTILISE SELENIUM ET QUI MARCHE JE VAIS FAIRE BRÛLER GENEVE. C'est pas possible serieux, je ne comprends pas j'essaie tout ce que je trouve et impossible de juste lancer firefox c'est du grand nimporte quoi. Je prend les même putain de librairies que sur les autres projets les mêmes versions, je prend le même exact code. Sur le nouveau projet impossible de le faire fonctionner. Je commence à croire que on essaie de me faire pêter un cable.
Du coup dans un élan de désespoir je vais tenter de passer sur une autre librairie qui avec un peu de chance marche et en plus me permettrais de prendre des foutues screenshot dans le bon format.
Les deux seules librairies qui pourraient potentiellement faire l'affaire sont les librairies :
- PhantomJS
- CefSharp
Je vais les tester et simplement prier pour qu'elles fonctionnent et que je puisse faire ce que je veux avec.
Alors pour le moment avec CEFSharp j'arrive à lancer une instance de chrome et prendre une screenshot avec ce code :
```Csharp
CefSettings settings = new CefSettings();
settings.CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache"); // Set cache path
settings.LogSeverity = LogSeverity.Disable; // Disable logging
Cef.Initialize(settings); // Initialize CEF
using (var browser = new ChromiumWebBrowser("www.google.com", new BrowserSettings())) // Launch Chromium in off-screen mode
{
browser.Load("https://www.example.com"); // Navigate to the test URL
browser.Size = new Size(1920, 1080); // Set the browser size to 1920x1080
browser.ScreenshotAsync().ContinueWith(task =>
{
var bitmap = task.Result;
bitmap.Save("screenshot.png", System.Drawing.Imaging.ImageFormat.Png); // Take a screenshot and save it as a PNG file
}).Wait();
}
Cef.Shutdown(); // Shutdown CEF
```
Avec ca il faut ces using :
```Csharp
using System;
using System.Drawing;
using System.IO;
using CefSharp;
using CefSharp.OffScreen;
```
C'est assez prometteur même si il faut encore beaucoup pour remplacer selenium.
Ah bah lol en fait non on peut pas utiliser cette librarie pour faire tourner firefox... J'EN AI MARRE J'AVAIS CHERCHE PRECISEMENT UNE LIB QUI MARCHE AVEC FIREFOX
Et phantomJS non plus ne fonctionne pas avec firefox... J'en ai marre.
Donc je vais plutôt partir sur la librairie GeckoFX qui semble pouvoir contrôler une instance de firefox. Mais j'avais justement pris un putain de projet C# et pas JS pour ne pas me taper ces problèmes de librairies...
Et si cette option ne fonctionne pas mon dernier espoir sera de directement intéragir avec le geckodriver.exe et la ca risque de pas être drôle.
JE NE COMPRENDS RIEN !!!!! Ca n'a aucun sens la doc est inexistante le seul lien qui pourrait amener sur une doc envoie sur la page principale de bitbucket. Tous les exemples de code que je trouve ne fonctionnent pas.
Je n'arrive à rien je commence à devenir fou. Tout ce travail pour rien c'est pas possible.
Même en essayant directement d'intéragir avec le process geckodriver.exe je ne peux pas arriver à mes fins. J'arrive à lancer le service et tout, mais je n'arrive pas à vraiment contrôler ce qu'il se passe donc impossible de venir prendre des screenshot.
Je ne sais tout simplement pas quoi faire ... Je suis bloqué. Je me suis cassé la tête à faire un truc qui marchait bien avec selenium et tout. Mais maintenant plus rien ne fonctionne du jour au lendemain et il n'y a simplement aucune alternative.
Je vais essayer de changer directement le projet Selenium_Clean mais bon ca va pas être drôle.
Ok alors j'ai tout repris depuis le début et je crois que j'ai enfin une solution.
Pour la trouver j'ai re-essayé toutes les techniques que j'avais tenté avant mais dans l'ordre et en les isolant à chaque fois.
Cela inclus :
Tenter de changer la densité de pixels. En effet je me suis dit que comme la résolution était plus basse le soucis était que le virtual screen avait simplement une DPI réduite.
`profile.SetPreference("layout.css.devPixelsPerPx", "2.0");`
J'ai aussi tenté de réduire à un seule le nombre de process de Firefox. J'ai pu lire sur internet que parfois cela pouvait influer sur les performances du renderer.
`profile.SetPreference("dom.ipc.processCount", 1);`
Ensuite j'ai tenté tout bêtement de rajouter dans la liste des arguments la taille voulue de l'écran.
`options.AddArgument("--window-size=1920,1080");`
Mais comme cela ne foncionnait pas, je me suis rabattu sur un script JS pour tenter de forcer la fenêtre à être plus grande.
`js.ExecuteScript("window.resizeTo(1920, 1080);");`
Comme cela n'a pas marché j'ai pu lire que cela pouvait être la taille intérieure qui devait être changée
`js.ExecuteScript("window.innerWidth = 1920; window.innerHeight = 1080;");`
Encore une fois sans succès. J'ai ensuite tenté d'utiliser trois autres versions du GeckoDriver, 0.27,0.26,0.25 et aucune ne m'aidait.
Mais en fait la seule chose qui a changé quoi que ce soit était la technique suivante :
Changer la window size en utilisant :
```Csharp
options.AddArgument("--width=1920");
options.AddArgument("--height=1200");
```
Ca ne marchait pas car j'utilisais une autre methode pour resize en même temps, qui elle ne marchait pas mais qui empêchait celle la de marcher. Ensuite le soucis que j'avais c'est que en mettant 1920-1080 je me retrouvais avec 1920-998 ou un truc du genre ce qui n'était pas normal alors je me disais que cette technique ne marchait pas non plus et je l'ai passée.
Alors tout n'est pas encore gagné, il faut que j'arrive à implémenter ca dans un plus gros projet et que la vidéo puisse être prise seule. Demain je m'occupe de ca.
## Mardi 2 Mai 2023