Diskuze: GET request se spuštením JS
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 9 zpráv z 9.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Ahoj,a o ti brání v použití WebBrowser?
Zkus tohle... je to úryvek kódu
Používám to v multithread aplikaci na generování obrázků z html.
var docKomplet = false;
var th = new Thread(() =>
{
WebBrowser wb1 = new WebBrowser();
var hasPrinted = false;
wb1.DocumentCompleted += (sender, e) =>
{
// logika po načtení stránky
docKomplet = true;
wb1.Dispose();
Application.ExitThread();
};
wb1.Size = new System.Drawing.Size(1376, 786);
wb1.ScriptErrorsSuppressed = true;
wb1.DocumentText = Content;
Application.Run();
});
th.SetApartmentState(ApartmentState.STA);
th.Start();
// Cekani na konec
while (!docKomplet)
Thread.Sleep(50);
a jak to mám udělat, když je to webová aplikace?
Firefox a Chrome mají "headless mode", kdy jednoduše spustíš prohlížeč
přes konzoli bez GUI a necháš si vrátit výstup.
https://developer.mozilla.org/…eadless_mode
https://developers.google.com/…dless-chrome
Je to standardní .NET aplikace jako každá jiná, máš k dispozici
všechny knihovny. Přidej si do referencí System.Windows.Forms a bude ti to
fungovat.
Pokud by to byl .NET Core pak by bylo řešení jiné.
Řešení
var chromeOptions = new ChromeOptions();
chromeOptions.AddArguments("headless");
using (var browser = new ChromeDriver(chromeOptions))
{
browser.Url = "moje url";
browser.Navigate();
}
Jen varování...
až to nahraješ na server, bude tam taky chrome? Jsi si jistý, že to bude
fungovat i za 10 verzí Chromu?
S použitím Google aplikací bych byl velmi opatrný, mívají schopnost měnit
funkčnost... zaděláš si tím na možné problémy...
chrome jsem nainstaloval na server. Budoucnost ukáže, zda to bude
dlouhodobě fungovat. Je to naštěstí jen "preventivní test", případně mi
přijde upozornění emailem
Zobrazeno 9 zpráv z 9.