Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:ffit:3-jahr:cicd:learningunits:lu07:aufgaben:a01 [2026/03/22 22:52] – angelegt apeterde:modul:ffit:3-jahr:cicd:learningunits:lu07:aufgaben:a01 [2026/03/24 14:37] (aktuell) apeter
Zeile 1: Zeile 1:
-==== LU07.A01 Wikipedia-Klicker ====+==== LU07.A01 Wikipedia-Klicker (path to philosophy) ==== 
 + 
 +Wenn man auf dem englischsprachigen Wikipedia auf einer Zufälligen Seite immer auf den ersten Link klickt, landet man häufig nach einer Weile bei "Philosophy"
 + 
 +Dieses Phänomen wurde sogar in wissenschaftlichen Arbeiten untersucht. Ebenso hat sich daraus ein Spiel entwickelt: 
 +  * https://en.wikipedia.org/wiki/Wikipedia_philosophy_phenomenon 
 +  * https://en.wikipedia.org/wiki/Wikipedia:Getting_to_Philosophy 
 +  * https://pathtophilosophy.com/ 
 + 
 +Manuelles Vorgehen 
 +  - https://en.wikipedia.org/wiki/Special:Random öffnen 
 +  - Ersten Link im Artikel klicken (Ausgenommen: "Redirected from", disambiguations, Referenzen und andere kursive Anmerkungen.) 
 +  - Seitentitel / URL merken 
 +  - Schritt 2 und 3  so lange wiederholen, bis man auf der Seite "Philosophy" landet oder auf einer Seite, die man in dem Durchgang bereits aufgerufen hat (Schleife). 
 + 
 +Nun möchten wir das mit dem Testing-Framework ''TestCafé'' automatisieren. 
 +  - TestCafé installieren 
 +  - Test implementieren 
 +  - Test mehrmals ausführen 
 + 
 +Folgendes Code-Snippet dient Ihnen allenfalls als Starthilfe: 
 +<code javascript> 
 +import { Selector } from 'testcafe'; 
 + 
 +fixture('Wikipedia Random Page Test').page('https://en.wikipedia.org/wiki/Special:Random'); 
 + 
 +test('Follow first Wikipedia links until Philosophy or loop', async (t) => { 
 +  // TODO: implement! 
 +}); 
 + 
 +const getTitleText = async (t) => { 
 +  const title = Selector('#firstHeading'); 
 +  await t.expect(title.exists).ok({ timeout: 10000 }); 
 +  return await title.innerText; 
 +}; 
 + 
 +const getFirstValidLink = async (t) => { 
 +  const content = Selector('#mw-content-text'); 
 +  await t.expect(content.exists).ok({ timeout: 10000 }); 
 + 
 +  const firstValidLink = await content 
 +    .find('p a') 
 +    .filter((node) => { 
 +      return ( 
 +        !node.closest('i') && 
 +        !node.closest('sup') && 
 +        !node.closest('.infobox') && 
 +        node.getAttribute('href')?.startsWith('/wiki/'
 +      ); 
 +    }) 
 +    .nth(0); 
 +  await t.expect(firstValidLink.exists).ok({ timeout: 10000 }); 
 +  return firstValidLink; 
 +}; 
 +</code> 
 + 
 +Geben Sie auf Moodle den Begriff mit der längsten Kette ein, den Sie gefunden haben.
  
-''TODO'' 
  • de/modul/ffit/3-jahr/cicd/learningunits/lu07/aufgaben/a01.1774216369.txt.gz
  • Zuletzt geändert: 2026/03/22 22:52
  • von apeter