{"id":1178,"date":"2015-11-10T17:28:25","date_gmt":"2015-11-10T22:28:25","guid":{"rendered":"https:\/\/www.redline13.com\/blog\/?p=1178"},"modified":"2022-01-03T20:01:40","modified_gmt":"2022-01-04T01:01:40","slug":"webdriver-example-in-java","status":"publish","type":"post","link":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/","title":{"rendered":"WebDriver Example in Java with ScreenShot"},"content":{"rendered":"<p>Here is an example of a JMeter + WebDriver test written in Java. \u00a0Comments in-line.<\/p>\n<p>In JMeter the driver is passed into the test.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>WDS object passed\u00a0in<\/strong><\/span><\/p>\n<p>Specifically we are provided an object called WDS with the following properties. \u00a0(from the <a href=\"http:\/\/jmeterplugins.com\/wiki\/WebDriverSampler\/index.html\">docs<\/a>). \u00a0 Take special notice of WDS.browser as this is the WebDriver we use to drive our test.<\/p>\n<ol>\n<li><strong>WDS.name<\/strong> &#8211; is the value provided in the Name field (above).<\/li>\n<li><strong>WDS.parameters<\/strong> &#8211; is the value provided in the Parameters field (above).<\/li>\n<li><strong>WDS.args<\/strong> &#8211; is an array of the strings provided in the <strong>Parameters<\/strong> field, but split by the space &#8216; &#8216; character. This allows the scripter to provide a number of strings as input and access each one by position.<\/li>\n<li><strong>WDS.log<\/strong> &#8211; is a <a href=\"http:\/\/excalibur.apache.org\/apidocs\/org\/apache\/log\/Logger.html\" target=\"_blank\" rel=\"nofollow noopener\">Logger instance<\/a> to allow the scripter to debug their scripts by writing information to the jmeter log file (JMeter provides a <a href=\"http:\/\/jmeter.apache.org\/usermanual\/get-started.html#logging\" target=\"_blank\" rel=\"nofollow noopener\">GUI<\/a> for its log entries)<\/li>\n<li><em><strong>WDS.browser<\/strong> &#8211; is the configured Web Driver browser that the scripter can script and control. There is detailed documentation on this object on the <a href=\"http:\/\/selenium.googlecode.com\/svn\/trunk\/docs\/api\/java\/org\/openqa\/selenium\/WebDriver.html\" target=\"_blank\" rel=\"nofollow noopener\">Selenium Javadocs page<\/a>.<\/em><\/li>\n<li><strong>WDS.sampleResult<\/strong> &#8211; is used to log when the timing should start and end. Furthermore, the scripter can set success\/failure state on this object, and this SampleResult is then used by the JMeter reporting suite. The <a href=\"http:\/\/jmeter.apache.org\/api\/org\/apache\/jmeter\/samplers\/SampleResult.html\" target=\"_blank\" rel=\"nofollow noopener\">JMeter javadocs<\/a> provide more information on the API of this object.<\/li>\n<\/ol>\n<p>WDS.browser is the WebDriver we will use through the test to execute the steps.<\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Example Results<\/strong><\/span><\/p>\n<ul>\n<li>Example Output &#8211; <a href=\"https:\/\/www.redline13.com\/share\/testplan\/20600\">https:\/\/www.redline13.com\/share\/testplan\/20600<\/a><\/li>\n<li>JMX File for full test &#8211; <a href=\"https:\/\/www.redline13.com\/share\/download\/20600?path=testplan\">https:\/\/www.redline13.com\/share\/download\/20600?path=testplan<\/a><\/li>\n<li><a href=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.47.07-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone wp-image-1185\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.47.07-PM.png\" alt=\"Screen Shot 2015-11-10 at 5.47.07 PM\" width=\"584\" height=\"382\" \/><\/a><\/li>\n<\/ul>\n<p><span style=\"text-decoration: underline;\"><strong>JMeter Sampler<\/strong><\/span><\/p>\n<p>1 &#8211; We select Java as the language<\/p>\n<p>2 &#8211; Optionally you can pass parameters into the script via Parameters.<\/p>\n<p>&nbsp;<\/p>\n<p><a href=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.50.55-PM.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1188\" src=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.50.55-PM.png\" alt=\"Screen Shot 2015-11-10 at 5.50.55 PM\" width=\"765\" height=\"314\" srcset=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.50.55-PM.png 765w, https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.50.55-PM-300x123.png 300w\" sizes=\"auto, (max-width: 765px) 100vw, 765px\" \/><\/a><\/p>\n<p><span style=\"text-decoration: underline;\"><strong>Example Code<\/strong><\/span><\/p>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"java\">\/\/ We import File, FileUtils for creating screenshots and storing them disk\nimport java.io.File;\nimport org.apache.commons.io.FileUtils;\nimport java.util.Random;\nimport openqa.selenium.OutputType.*;\nimport org.openqa.selenium.*;\nimport org.openqa.selenium.support.ui.*;\n\n\/\/ Required to start counting time which will get reported at the end of this code.\nWDS.sampleResult.sampleStart();\n\n\/\/ We could have passed this in, just coding in the example\nString baseUrl = \"http:\/\/www.plexify.com\";\n\n\/\/ Load the home page\nWDS.browser.get(baseUrl + \"\/\");\n\n\/\/ Find a css selector by ID and Click it\nWDS.browser.findElement(By.id(\"plexSelector\")).click();\n\n\/\/ Find another element and send in the keys for our search box\nWDS.browser.findElement(By.id(\"plexSelector\")).sendKeys( new String[] { \"iphone\" } );\n\n\/\/ We wait for the Ajax data to respond and update part of the page. \nfor (int second = 0;; second++) {\n  if (second &gt;= 300 ){\n        WDS.sampleResult.sampleEnd();\n        WDS.sampleResult.setSuccessful(false);\n        WDS.sampleResult.setResponseMessage(\"Failed to load page, too slow!\");\n        return;\n    }\n  \/\/ We are looking for some text in the drop down\n  try { \n      if ( WDS.browser.findElement(By.xpath(\"\/\/a[contains(text(),'openSourceIPhoneApps')]\"))!= null ) break; \n     } catch (Exception e) {}\n  Thread.sleep(1000);\n}\n\n\/\/ The random is because we don't need every single screen shot during our test. \n\/\/ If we ran 100 users, 10 iterations, on 5 machines we would end up with 100*10*5 screenshots. too much. \n\/\/ Most webdriver tests take screenshots during failures, we are just showing how here. \nRandom r = new Random();\nif ( r.nextInt(10) == 0 ){\n File mFile = ((TakesScreenshot)WDS.browser).getScreenshotAs(OutputType.FILE);\n\n \/\/ To have the file returned or displayed on RedLine13 load test we need to put the screenshot in output\/\n \/\/ We have access to WDS.parameters in which we passed through the current thread-loopcounter for unique filenames.\n FileUtils.copyFile(mFile, new File(\"output\/\" + WDS.name + \"-\" + WDS.parameters + \".png\"));\n}\n\n\/\/ Do a little more \nWDS.browser.findElement(By.xpath(\"\/\/a[contains(text(),'openSourceIPhoneApps')]\")).click();\nWDS.browser.findElement(By.id(\"plexSelector\")).sendKeys(new Keys[]{Keys.ENTER});\n\n\/\/ End the test sampler, capturing length of time for the test.\nWDS.sampleResult.sampleEnd();\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Here is an example of a JMeter + WebDriver test written in Java. \u00a0Comments in-line. In JMeter the driver is passed into the test. WDS object passed\u00a0in Specifically we are provided an object called WDS with the following properties. \u00a0(from the docs). \u00a0 Take special notice of WDS.browser as this is the WebDriver we use to drive our test. WDS.name &#8211; is the value provided in the Name field (above). WDS.parameters &#8211; is the value provided<a class=\"more-link\" href=\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\">Read More &rarr;<\/a><\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[2,7,52],"tags":[],"class_list":{"0":"entry","1":"post","2":"publish","3":"author-richardfriedman","4":"post-1178","6":"format-standard","7":"category-blog","8":"category-jmeter","9":"category-webdriver"},"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.12 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>WebDriver Example in Java with ScreenShot - RedLine13<\/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:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"WebDriver Example in Java with ScreenShot - RedLine13\" \/>\n<meta property=\"og:description\" content=\"Here is an example of a JMeter + WebDriver test written in Java. \u00a0Comments in-line. In JMeter the driver is passed into the test. WDS object passed\u00a0in Specifically we are provided an object called WDS with the following properties. \u00a0(from the docs). \u00a0 Take special notice of WDS.browser as this is the WebDriver we use to drive our test. WDS.name &#8211; is the value provided in the Name field (above). WDS.parameters &#8211; is the value providedRead More &rarr;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\" \/>\n<meta property=\"og:site_name\" content=\"RedLine13\" \/>\n<meta property=\"article:published_time\" content=\"2015-11-10T22:28:25+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-01-04T01:01:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.47.07-PM.png\" \/>\n<meta name=\"author\" content=\"Rich Friedman\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Rich Friedman\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\"},\"author\":{\"name\":\"Rich Friedman\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/0fadb7f3ef665407f3c93c8ec84e741a\"},\"headline\":\"WebDriver Example in Java with ScreenShot\",\"datePublished\":\"2015-11-10T22:28:25+00:00\",\"dateModified\":\"2022-01-04T01:01:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\"},\"wordCount\":299,\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"articleSection\":[\"Blog\",\"JMeter\",\"webdriver\"],\"inLanguage\":\"en-US\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\",\"name\":\"WebDriver Example in Java with ScreenShot - RedLine13\",\"isPartOf\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\"},\"datePublished\":\"2015-11-10T22:28:25+00:00\",\"dateModified\":\"2022-01-04T01:01:40+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.redline13.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"WebDriver Example in Java with ScreenShot\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#website\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"name\":\"RedLine13\",\"description\":\"(Almost) Free Load Testing in the Cloud\",\"publisher\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.redline13.com\/blog\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#organization\",\"name\":\"RedLine13\",\"url\":\"https:\/\/www.redline13.com\/blog\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"contentUrl\":\"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg\",\"width\":300,\"height\":68,\"caption\":\"RedLine13\"},\"image\":{\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/\"}},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/0fadb7f3ef665407f3c93c8ec84e741a\",\"name\":\"Rich Friedman\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/8651ce662fc18353b90c1922f9d29efb01173afa5500224b4d9a355d858a7bd9?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/8651ce662fc18353b90c1922f9d29efb01173afa5500224b4d9a355d858a7bd9?s=96&d=mm&r=g\",\"caption\":\"Rich Friedman\"},\"sameAs\":[\"http:\/\/richardfriedman@yahoo.com\"],\"url\":\"https:\/\/www.redline13.com\/blog\/author\/richardfriedman\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"WebDriver Example in Java with ScreenShot - RedLine13","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:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/","og_locale":"en_US","og_type":"article","og_title":"WebDriver Example in Java with ScreenShot - RedLine13","og_description":"Here is an example of a JMeter + WebDriver test written in Java. \u00a0Comments in-line. In JMeter the driver is passed into the test. WDS object passed\u00a0in Specifically we are provided an object called WDS with the following properties. \u00a0(from the docs). \u00a0 Take special notice of WDS.browser as this is the WebDriver we use to drive our test. WDS.name &#8211; is the value provided in the Name field (above). WDS.parameters &#8211; is the value providedRead More &rarr;","og_url":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/","og_site_name":"RedLine13","article_published_time":"2015-11-10T22:28:25+00:00","article_modified_time":"2022-01-04T01:01:40+00:00","og_image":[{"url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2015\/11\/Screen-Shot-2015-11-10-at-5.47.07-PM.png"}],"author":"Rich Friedman","twitter_card":"summary_large_image","twitter_misc":{"Written by":"Rich Friedman","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/#article","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/"},"author":{"name":"Rich Friedman","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/0fadb7f3ef665407f3c93c8ec84e741a"},"headline":"WebDriver Example in Java with ScreenShot","datePublished":"2015-11-10T22:28:25+00:00","dateModified":"2022-01-04T01:01:40+00:00","mainEntityOfPage":{"@id":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/"},"wordCount":299,"publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"articleSection":["Blog","JMeter","webdriver"],"inLanguage":"en-US"},{"@type":"WebPage","@id":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/","url":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/","name":"WebDriver Example in Java with ScreenShot - RedLine13","isPartOf":{"@id":"https:\/\/www.redline13.com\/blog\/#website"},"datePublished":"2015-11-10T22:28:25+00:00","dateModified":"2022-01-04T01:01:40+00:00","breadcrumb":{"@id":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.redline13.com\/blog\/2015\/11\/webdriver-example-in-java\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.redline13.com\/blog\/"},{"@type":"ListItem","position":2,"name":"WebDriver Example in Java with ScreenShot"}]},{"@type":"WebSite","@id":"https:\/\/www.redline13.com\/blog\/#website","url":"https:\/\/www.redline13.com\/blog\/","name":"RedLine13","description":"(Almost) Free Load Testing in the Cloud","publisher":{"@id":"https:\/\/www.redline13.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.redline13.com\/blog\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.redline13.com\/blog\/#organization","name":"RedLine13","url":"https:\/\/www.redline13.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","contentUrl":"https:\/\/www.redline13.com\/blog\/wp-content\/uploads\/2013\/06\/cropped-rl13-header-logo.jpg","width":300,"height":68,"caption":"RedLine13"},"image":{"@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/logo\/image\/"}},{"@type":"Person","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/0fadb7f3ef665407f3c93c8ec84e741a","name":"Rich Friedman","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.redline13.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/8651ce662fc18353b90c1922f9d29efb01173afa5500224b4d9a355d858a7bd9?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/8651ce662fc18353b90c1922f9d29efb01173afa5500224b4d9a355d858a7bd9?s=96&d=mm&r=g","caption":"Rich Friedman"},"sameAs":["http:\/\/richardfriedman@yahoo.com"],"url":"https:\/\/www.redline13.com\/blog\/author\/richardfriedman\/"}]}},"_links":{"self":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/1178","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/comments?post=1178"}],"version-history":[{"count":1,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/1178\/revisions"}],"predecessor-version":[{"id":8696,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/posts\/1178\/revisions\/8696"}],"wp:attachment":[{"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/media?parent=1178"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/categories?post=1178"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.redline13.com\/blog\/wp-json\/wp\/v2\/tags?post=1178"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}