{"id":346,"date":"2015-05-15T17:08:23","date_gmt":"2015-05-15T15:08:23","guid":{"rendered":"https:\/\/schwarzer.de\/blog\/?p=346"},"modified":"2020-09-17T15:32:24","modified_gmt":"2020-09-17T13:32:24","slug":"selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen","status":"publish","type":"post","link":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/","title":{"rendered":"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen"},"content":{"rendered":"<p><!-- <ezTOC> -->Ein <strong>Selenium Tutorial (deutsch)<\/strong>, das ist nicht nur f\u00fcr vielbesch\u00e4ftigte Projektleiter interessant, die ihre Qualit\u00e4tssicherung auf die n\u00e4chste Stufe heben wollen.<br \/>\nDavon profitiert n\u00e4mlich auch der erfolgreiche Unternehmer, denn das <strong>Testen von dynamischen Webapplikationen<\/strong> nimmt (wenn man es gr\u00fcndlich macht) viel Zeit in Anspruch.<\/p>\n<p>Und da Zeit nun mal auch Geld ist, will man hier am Liebsten an beidem sparen. Wer oder was kann also einem zur Hand gehen um das Testing zu verk\u00fcrzen? Die Antwort lautet kurz und schmerzlos: Die gute alte Automatisierung.<\/p>\n<h2 id=\"selenium-tutorial-deutsch-darum-automatisieren\">Selenium Tutorial deutsch: Darum automatisieren<\/h2>\n<p>Ach da kommt er ja, der Kunde. Man bittet ihn freundlich herein, trinkt zusammen gem\u00fctlich einen Kaffee, diskutiert angeregt \u00fcber das Design, die Funktionsweise der Website. Ja klar, nat\u00fcrlich muss ein Relaunch des Designs her. Und nat\u00fcrlich auch einige neue Funktionen. Und wenn man schon dabei ist, kann man denn nicht gleich die Seite responsive machen?<\/p>\n<p>Gesagt, getan. Kunde wird genau so freundlich verabschiedet, wie er hereingebeten wurde. Dann trommelt man sein Entwicklerteam zusammen und macht die grobe Zeitsch\u00e4tzung, weil der ungeduldige Herr, mit dem man vorhin einen Kaffeeplausch gehalten hat, schlie\u00dflich wissen will, wieviel Kosten denn auf ihn zukommen werden. Die Entwickler gr\u00fcbeln, kramen in ihrem Erfahrungsschatz und der Output sind blanke Zahlen, Fakten. Diese werden fein s\u00e4uberlich in ein Excel-Sheet eingetragen und dann endlich die Summe berechnet. Das w\u00e4ren dann 40 Manntage f\u00fcr die Entwicklung.<\/p>\n<p>Aber haben wir da nicht etwas vergessen? Was ist u.a. mit dem Testing? Das Testen von Webapplikationen erledigt sich n\u00e4mlich nicht von alleine:<\/p>\n<ul>\n<li>Modultests<\/li>\n<li>Integrationstest<\/li>\n<li>Blackboxtests<\/li>\n<li>AJAX-Tests<\/li>\n<li>Design-Checks<\/li>\n<li>Geschwindigkeitstests<\/li>\n<li>usw.<\/li>\n<\/ul>\n<p>und das alles in den verschiedensten Konstellationen:<\/p>\n<ul>\n<li>Browser<\/li>\n<li>Browserversion<\/li>\n<li>Betriebssystem<\/li>\n<li>Responsive<\/li>\n<\/ul>\n<p>Wenn man also z.B. 30 Seiten in Firefox, Chrome unter Linux, OSX, Windows 7 und 8.1 testen m\u00f6chte, sind das insgesamt:<\/p>\n<pre><code>30 x 2 x 4 = 240 Tests!<\/code><\/pre>\n<p>Dabei haben wir aber noch lange nicht alle Browserversionen und kein mobilen Browser ber\u00fccksichtigt. Kalkulieren wir weiter: Wenn eine Seite zwei Minuten zum Testing braucht &#8230;<\/p>\n<pre><code>240 * 2 = 480 Minuten\r\n480 \/ 60 = 8 Stunden<\/code><\/pre>\n<p>&#8230; braucht man f\u00fcr das gesamte Testpaket 8 Stunden. Aber das schaffen wir doch &#8230; irgendwie, denkt man sich. Es gibt ja schlie\u00dflich Azubis, die zur Abwechslung zum Lochen und Heften auch etwas herumklicken k\u00f6nnen. Und au\u00dferdem kommt n\u00e4chsten Monat noch ein Praktikant. Er kann bestimmt auch noch ein St\u00fcck aushelfen. H\u00f6rt sich nicht sehr professionell an, nicht wahr? Es h\u00f6rt sich eher sehr schwammig und fehleranf\u00e4llig an. Denn was garantiert, dass das immer mehr gelangweilte Personal bei diesem Berg von Monotonie eine gleichbleibende Qualit\u00e4t beibeh\u00e4lt? Also gut, irgend etwas muss her, was im Speziellen das Testing qualitativer und gleichzeitig schneller macht. Sp\u00e4testens jetzt ist es an der Zeit ein eigenes Selenium Grid aufzusetzen um sein Testen von Webapplikationen zu automatisieren.<\/p>\n<h3 id=\"selenium-tutorial-deutsch-selenium-grid-kurz-umschrieben\">Selenium Tutorial deutsch: Selenium Grid kurz umschrieben<\/h3>\n<p>Was ist aber dieses <strong>Selenium Grid<\/strong> &#8211; oder wie es fr\u00fcher genannt wurde <strong>Selenium RC (Remote Control)<\/strong>? Kurz gesagt: Man f\u00fcttert Selenium mit Testanweisungen, es f\u00fchrt diese unter verschiedenen Browser-Betriebssystem-Kombinationen aus und gibt Feedback. Mit <strong>Selenium Grid<\/strong> w\u00e4re dann also nicht nur das reine <strong>Testen von Webapplikationen<\/strong> abgedeckt, sondern auch die Spezifikation. Denn ohne <strong>Tesplan<\/strong> kein Testing und folgerichtig keine Testergebnisse.<\/p>\n<figure id=\"attachment_348\" aria-describedby=\"caption-attachment-348\" style=\"width: 300px\" class=\"wp-caption alignnone\"><img src=\"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/infografik-selenium-grid-funktionsweise-und-einsatzzweck-300x236.png\" alt=\"Infografik #1: Selenium Grid: Funktionsweise und Einsatzzweck\" width=\"300\" height=\"236\" class=\"size-medium wp-image-348\" \/><figcaption id=\"caption-attachment-348\" class=\"wp-caption-text\">Infografik #1: Selenium Grid: Funktionsweise und Einsatzzweck<\/figcaption><\/figure>\n<h2 id=\"selenium-tutorial-deutsch-richtige-version-w\u00e4hlen\">Selenium Tutorial deutsch: Richtige Version w\u00e4hlen<\/h2>\n<p>Wenn man nach <code>Selenium<\/code> mit der Suchmaschine seiner Wahl sucht, bekommt man eine Reihe von Informationen. W\u00e4hrend man sich dann m\u00fchsam durch ein Selenium Tutorial nach dem anderen hangelt, wird man fr\u00fcher oder sp\u00e4ter auf die folgenden Begriffe sto\u00dfen:<\/p>\n<ul>\n<li><strong>Selenium Grid<\/strong><\/li>\n<li><strong>Selenium Webdriver<\/strong><\/li>\n<li><strong>Selenium RC<\/strong><\/li>\n<li><strong>Selenium Remote Control<\/strong><\/li>\n<li><strong>Selenium IDE<\/strong><\/li>\n<li><strong>Selenium 2<\/strong><\/li>\n<\/ul>\n<p>Man sieht irgendwann den Wald vor lauter B\u00e4umen nicht! Deswegen werden nun die zwei wichtigsten vorgestellt.<\/p>\n<h3 id=\"selenium-rc-veraltet\">Selenium RC: Veraltet<\/h3>\n<p>Alles hat damals damit angefangen, dass sich jemand hingesetzt hat und Gedanken gemacht hat, wie er eine Website automatisiert bedienen kann, wie er Bildchen anklicken lassen kann und wie Textfelder automatisch bef\u00fcllt werden k\u00f6nnen. Die naheliegendste L\u00f6sung war JavaScript. Diese Sprache wird bekanntlich von allen modernen Browsern unterst\u00fctzt und ist mit den ben\u00f6tigten Funktionen bereits ausgestattet. Also suchte man Mittel und Wege eine Webseite so zu \u00f6ffnen, dass man dort fremdes JavaScript ausf\u00fchren kann. So eine Art <strong>JavaScript-Injection<\/strong>. Und genau das ist eigentlich die Funktionsweise von Selenium RC (Remote Control): Die f\u00fcr Selenium geschriebenen Testanweisungen werden nach JavaScript konvertiert und im Browser ausgef\u00fchrt.<\/p>\n<figure id=\"attachment_349\" aria-describedby=\"caption-attachment-349\" style=\"width: 258px\" class=\"wp-caption alignnone\"><img src=\"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/infografik-selenium-rc-interaktion-mit-dem-browser.png\" alt=\"Infografik #2: Selenium RC: Interaktion mit dem Browser\" width=\"258\" height=\"300\" class=\"size-full wp-image-349\" \/><figcaption id=\"caption-attachment-349\" class=\"wp-caption-text\">Infografik #2: Selenium RC: Interaktion mit dem Browser<\/figcaption><\/figure>\n<p>Diese Methode erscheint auf den ersten Blick perfekt. Das Problem ist aber, dass der Code f\u00fcr einen Selenium <strong>RC<\/strong> Testplan aber nicht objektorientiert ist und deswegen z.B. umst\u00e4ndlich zu warten w\u00e4re. Bei Selenium RC existieren aber noch andere schwierige Bereiche wie Geschwindigkeit und Funktionsumfang. Deswegen wurde Selenium Grid (auch <strong>Selenium Webdriver<\/strong> genannt) ins Leben gerufen, um Remote Control praktisch abzul\u00f6sen.<\/p>\n<h3 id=\"selenium-grid-so-testet-man-heute\">Selenium Grid: So testet man heute<\/h3>\n<p>Selenium Grid ist im Gegensatz zu Selenium RC nicht nur objektorientiert, sondern verfolgt auch einen ganz anderen Ansatz.<br \/>\nAnstatt die Testanweisungen \u00fcber JavaScript auszuf\u00fchren, verwendet Selenium Grid sogenannte Browser-Treiber (WebDriver).<br \/>\nDer von uns geschriebene Testplan wird also \u00fcber Selenium Grid an einen Browser-Driver weitergegeben und dort nativ vom Browser ausgef\u00fchrt.<br \/>\nDas gibt nicht nur einen saftigen Geschwindigkeitsvorteil, sondern gibt uns die M\u00f6glichkeit den ganzen Funktionsumfang des zu testenden Browsers zu nutzen.<br \/>\nSo hat man in Selenium RC zum Beispiel nur beschr\u00e4nkten Zugriff auf XPath-Funktionen.<br \/>\nM\u00f6chte man aber z.B. auf ein bestimmtes Element einer XPath-Abfrage zeigen, dann hat kann man dies <strong>nur mit Selenium WebDriver<\/strong> erreichen.<\/p>\n<p>Alle Elemente, die Firefox (\u00fcber Firepath) oder Chrome (in der eigenen Konsole \u00fcber <code>$x(...)<\/code>) ansprechen k\u00f6nnen, kann man also auch in seinen Testanweisungen anklicken, screenshotten, etc.<\/p>\n<p>Hier ein Beispiel f\u00fcr eine &#8211; sagen wir mal etwas fortgeschrittene &#8211; XPath-Abfrage:<\/p>\n<pre><code>(\/\/*[contains(text(),'suchtext')]\/..\/..)[2]<\/code><\/pre>\n<p>Auch aus diesem Grund sollte man es sich von Anfang an angew\u00f6hnen, seine Selenium Testpl\u00e4ne f\u00fcr Selenium Webdriver\/Grid zu schreiben.<\/p>\n<h2 id=\"zusammenfassung\">Zusammenfassung<\/h2>\n<p>Zusammenfassend kann man also sagen, dass automatisiertes Testing sich wirklich lohnt. Und zwar nicht nur von Windows\/Mac\/Linux-Applikationen, sondern insbesondere von dynamischen Webseiten.<br \/>\nDa Websites immer online und deswegen f\u00fcr den kritischen Benutzer immer erreichbar sind, sollten sie folgerichtig einfach <strong>immer<\/strong> funktionieren.<br \/>\nUm das zu gew\u00e4hrleisten, muss man in Anbetracht der Vielfalt von Browsern und Betriebssystemen sich schnell auf das automated Testing besinnen und im ersten Schritt nat\u00fcrlich erstmal investieren.<br \/>\nDabei helfen Technologien wie Selenium schneller voranzukommen als man denkt &#8211; vorausgesetzt, man hat die richtige Selenium Version im Einsatz.<br \/>\nWenn also das n\u00e4chste mal der freundliche Kunde am Kaffeeplausch teilnimmt, kann man sich entspannt zur\u00fccklehnen, denn das n\u00e4chste Testing machen weder die Auszubildenden, noch die Prakikanten, sondern unser Selenium Grid.<\/p>\n<p>Und das passiert nicht nur schneller, sondern auch bei gleich bleibend hoher Qualit\u00e4t.<\/p>\n<p>Im folgenden Artikel k\u00f6nnen Sie dann einiges mehr in Erfahrung bringen. Zum Beispiel schreiben wir dann dar\u00fcber, wie Sie eine eigene Selenium-Testumgebung im privaten Netzwerk implementieren k\u00f6nnen, wie die besagten Testpl\u00e4ne auszusehen haben und wie man <strong>automatische Reports<\/strong> generieren kann, die den Entwicklern beim Bugfixing mit Sicherheit enorm weiterhelfen werden.<\/p>\n<p>Titelbild: By Niklas Bildhauer (who also is User gerolsteiner91. (originally posted to Flickr as folder) [<a href=\"http:\/\/creativecommons.org\/licenses\/by-sa\/2.0\">CC BY-SA 2.0<\/a>], <a href=\"http:\/\/commons.wikimedia.org\/wiki\/File%3AFileStack_retouched.jpg\">via Wikimedia Commons<\/a>, Infografiken &copy;Schwarzer.de<!-- <\/ezTOC> --><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Ein Selenium Tutorial (deutsch), das ist nicht nur f\u00fcr vielbesch\u00e4ftigte Projektleiter interessant, die ihre Qualit\u00e4tssicherung auf die n\u00e4chste Stufe heben [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":353,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[286,287],"tags":[295,297,299,302,303,304,305,307],"features_image":"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/FileStack_retouched.jpg","rk_cat":null,"rk_date":"15.05.2015","yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v18.1 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen - Schwarzer.de Blog<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/\" \/>\n<meta property=\"og:locale\" content=\"de_DE\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen - Schwarzer.de Blog\" \/>\n<meta property=\"og:description\" content=\"Ein Selenium Tutorial (deutsch), das ist nicht nur f\u00fcr vielbesch\u00e4ftigte Projektleiter interessant, die ihre Qualit\u00e4tssicherung auf die n\u00e4chste Stufe heben [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/\" \/>\n<meta property=\"og:site_name\" content=\"Schwarzer.de Blog\" \/>\n<meta property=\"article:published_time\" content=\"2015-05-15T15:08:23+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2020-09-17T13:32:24+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/FileStack_retouched.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"864\" \/>\n\t<meta property=\"og:image:height\" content=\"768\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Geschrieben von\" \/>\n\t<meta name=\"twitter:data1\" content=\"Hans-J\u00fcrgen Schwarzer\" \/>\n\t<meta name=\"twitter:label2\" content=\"Gesch\u00e4tzte Lesezeit\" \/>\n\t<meta name=\"twitter:data2\" content=\"6 Minuten\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebSite\",\"@id\":\"https:\/\/schwarzer.de\/blog\/#website\",\"url\":\"https:\/\/schwarzer.de\/blog\/\",\"name\":\"Schwarzer.de Blog\",\"description\":\"\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/schwarzer.de\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"de-DE\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#primaryimage\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/FileStack_retouched.jpg\",\"contentUrl\":\"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/FileStack_retouched.jpg\",\"width\":864,\"height\":768,\"caption\":\"By Niklas Bildhauer (who also is User gerolsteiner91. (originally posted to Flickr as folder) [CC BY-SA 2.0 (http:\/\/creativecommons.org\/licenses\/by-sa\/2.0)], via Wikimedia Commons\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#webpage\",\"url\":\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/\",\"name\":\"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen - Schwarzer.de Blog\",\"isPartOf\":{\"@id\":\"https:\/\/schwarzer.de\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#primaryimage\"},\"datePublished\":\"2015-05-15T15:08:23+00:00\",\"dateModified\":\"2020-09-17T13:32:24+00:00\",\"author\":{\"@id\":\"https:\/\/schwarzer.de\/blog\/#\/schema\/person\/b4ffeb0c116fc217c80baefd49bc381a\"},\"breadcrumb\":{\"@id\":\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#breadcrumb\"},\"inLanguage\":\"de-DE\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Startseite\",\"item\":\"https:\/\/schwarzer.de\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen\"}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/schwarzer.de\/blog\/#\/schema\/person\/b4ffeb0c116fc217c80baefd49bc381a\",\"name\":\"Hans-J\u00fcrgen Schwarzer\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/schwarzer.de\/blog\/#personlogo\",\"inLanguage\":\"de-DE\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/64690c1ea3ab46fac7afd4778bc78364?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/64690c1ea3ab46fac7afd4778bc78364?s=96&d=mm&r=g\",\"caption\":\"Hans-J\u00fcrgen Schwarzer\"},\"description\":\"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.\",\"url\":\"#\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen - Schwarzer.de Blog","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/","og_locale":"de_DE","og_type":"article","og_title":"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen - Schwarzer.de Blog","og_description":"Ein Selenium Tutorial (deutsch), das ist nicht nur f\u00fcr vielbesch\u00e4ftigte Projektleiter interessant, die ihre Qualit\u00e4tssicherung auf die n\u00e4chste Stufe heben [&hellip;]","og_url":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/","og_site_name":"Schwarzer.de Blog","article_published_time":"2015-05-15T15:08:23+00:00","article_modified_time":"2020-09-17T13:32:24+00:00","og_image":[{"width":864,"height":768,"url":"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/FileStack_retouched.jpg","type":"image\/jpeg"}],"twitter_card":"summary_large_image","twitter_misc":{"Geschrieben von":"Hans-J\u00fcrgen Schwarzer","Gesch\u00e4tzte Lesezeit":"6 Minuten"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebSite","@id":"https:\/\/schwarzer.de\/blog\/#website","url":"https:\/\/schwarzer.de\/blog\/","name":"Schwarzer.de Blog","description":"","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/schwarzer.de\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"de-DE"},{"@type":"ImageObject","@id":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#primaryimage","inLanguage":"de-DE","url":"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/FileStack_retouched.jpg","contentUrl":"https:\/\/schwarzer.de\/blog\/wp-content\/uploads\/2015\/05\/FileStack_retouched.jpg","width":864,"height":768,"caption":"By Niklas Bildhauer (who also is User gerolsteiner91. (originally posted to Flickr as folder) [CC BY-SA 2.0 (http:\/\/creativecommons.org\/licenses\/by-sa\/2.0)], via Wikimedia Commons"},{"@type":"WebPage","@id":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#webpage","url":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/","name":"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen - Schwarzer.de Blog","isPartOf":{"@id":"https:\/\/schwarzer.de\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#primaryimage"},"datePublished":"2015-05-15T15:08:23+00:00","dateModified":"2020-09-17T13:32:24+00:00","author":{"@id":"https:\/\/schwarzer.de\/blog\/#\/schema\/person\/b4ffeb0c116fc217c80baefd49bc381a"},"breadcrumb":{"@id":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#breadcrumb"},"inLanguage":"de-DE","potentialAction":[{"@type":"ReadAction","target":["https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/schwarzer.de\/blog\/selenium-tutorial-deutsch-testen-von-dynamischen-webapplikationen\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Startseite","item":"https:\/\/schwarzer.de\/blog\/"},{"@type":"ListItem","position":2,"name":"Selenium Tutorial deutsch: Testen von dynamischen Webapplikationen"}]},{"@type":"Person","@id":"https:\/\/schwarzer.de\/blog\/#\/schema\/person\/b4ffeb0c116fc217c80baefd49bc381a","name":"Hans-J\u00fcrgen Schwarzer","image":{"@type":"ImageObject","@id":"https:\/\/schwarzer.de\/blog\/#personlogo","inLanguage":"de-DE","url":"https:\/\/secure.gravatar.com\/avatar\/64690c1ea3ab46fac7afd4778bc78364?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/64690c1ea3ab46fac7afd4778bc78364?s=96&d=mm&r=g","caption":"Hans-J\u00fcrgen Schwarzer"},"description":"Hans-J\u00fcrgen Schwarzer leitet die Digital-Agentur schwarzer.de software + internet gmbh. Als Unternehmer und Verleger in Personalunion wie auch als leidenschaftlicher Blogger geh\u00f6rt er zu den Hauptautoren verschiedener Online-Magazine. Innerhalb seiner breiten Palette an Themen liegen dem Mainzer Lokalpatrioten dabei vermeintlich \u201eschr\u00e4ge\u201c Ideen und technische Novit\u00e4ten besonders am Herzen - Nerdstuff, wie es heute hei\u00dft.","url":"#"}]}},"_links":{"self":[{"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/346"}],"collection":[{"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/comments?post=346"}],"version-history":[{"count":9,"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/346\/revisions"}],"predecessor-version":[{"id":1304,"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/posts\/346\/revisions\/1304"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/media\/353"}],"wp:attachment":[{"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/media?parent=346"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/categories?post=346"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/schwarzer.de\/blog\/wp-json\/wp\/v2\/tags?post=346"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}