{"id":829,"date":"2013-01-02T09:48:49","date_gmt":"2013-01-02T09:48:49","guid":{"rendered":"http:\/\/vskills.in\/certification\/tutorial\/?p=829"},"modified":"2024-04-12T14:13:14","modified_gmt":"2024-04-12T08:43:14","slug":"selenium-javascript-usage","status":"publish","type":"page","link":"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/","title":{"rendered":"Selenium JavaScript Usage | Selenium Automation Testing Online Course"},"content":{"rendered":"<h1>Selenium JavaScript Usage | Selenium Automation Testing<\/h1>\n<p>Selenium Javascript Usage &#8211; Selenium Automation Testing<\/p>\n<p>Selenium has a mature API that caters to the majority of automation tasks that you may want to throw at it. That being said, you will occasionally come across problems that the API doesn&#8217;t really seem to support. This was very much on the development team&#8217;s mind when Selenium was written. So, they provided a way for you to easily inject and execute arbitrary blocks of JavaScript. Let&#8217;s have a look at a basic example of using a JavaScript executor in Selenium:<\/p>\n<pre class=\"line-numbers language-javascript\"><code class=\" language-javascript\">JavascriptExecutor js <span class=\"token operator\">=<\/span> <span class=\"token punctuation\">(<\/span>JavascriptExecutor<span class=\"token punctuation\">)<\/span> driver<span class=\"token punctuation\">;<\/span>\r\njs<span class=\"token punctuation\">.<\/span><span class=\"token function\">executeScript<span class=\"token punctuation\">(<\/span><\/span>\"console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<span class=\"token punctuation\">(<\/span><\/span>'I logged something to the\r\nJavascript console'<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\"<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<p>Note that the first thing we do is cast a <em>WebDriver<\/em> object into a <em>JavascriptExecutor<\/em> object. The <em>JavascriptExecutor<\/em> interface is implemented through the <em>RemoteWebDriver<\/em> class. So, it&#8217;s not a part of the core set of API functions. Since we normally pass around a <em>WebDriver<\/em> object, the <em>executeScript<\/em> functions will not be available unless we perform this cast.<\/p>\n<p>If you are directly using an instance of <em>RemoteWebDriver<\/em> or something that extends it (most driver implementations now do this), you will have direct access to the <em>.executeScript()<\/em> function. Here&#8217;s an example:<\/p>\n<pre class=\"line-numbers language-javascript\"><code class=\" language-javascript\">FirefoxDriver driver <span class=\"token operator\">=<\/span> <span class=\"token keyword\">new<\/span> <span class=\"token class-name\">FirefoxDriver<\/span><span class=\"token punctuation\">(<\/span><span class=\"token keyword\">new<\/span> <span class=\"token class-name\">FirefoxProfile<\/span><span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\r\ndriver<span class=\"token punctuation\">.<\/span><span class=\"token function\">executeScript<span class=\"token punctuation\">(<\/span><\/span>\"console<span class=\"token punctuation\">.<\/span><span class=\"token function\">log<span class=\"token punctuation\">(<\/span><\/span>'I logged something to the\r\nJavascript console'<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span>\"<span class=\"token punctuation\">)<\/span><span class=\"token punctuation\">;<\/span><\/code><\/pre>\n<p>The second line (in both the preceding examples) is just telling Selenium to execute an arbitrary piece of JavaScript. In this case, we are just going to print something to the JavaScript console in the browser.<\/p>\n<p><strong>Selenium RC<\/strong> launches the browser with itself as the proxy server (hence you may get certificate warning in some modes) and then it injects javascript &#8211; to play the test. This also means it can easily work in ALL browsers\/platform &#8211; and it can be easily used to test AJAX(unlike professional tools).<\/p>\n<p>Since Selenium is based on <strong>JavaScript<\/strong>, you can use it in your tests.It is an excellent way to extract information from the pages for later reuse.<\/p>\n<p>There are 2 methods available:<\/p>\n<div>\n<ul type=\"circle\">\n<li><code>getEval(script)<\/code>: it takes the script as a string, executes it and return the value to which the script evaluates too. In ruby use <code>get_eval<\/code> or <code>js_eval<\/code>\n<div>\n<ul type=\"square\">\n<li>Using this method, the <code>window<\/code> object refers to the Selenium context, which is different from the tested application\u2019s JavaScript contextTo work around this, you need to get the application\u2019s <code>window<\/code> object using <code>currentwindow = this.browserbot.getCurrentWindow()<\/code> * If you want to get an element, just use <code>element = this.browserbot.findElement(\"locator\")<\/code><\/li>\n<\/ul>\n<\/div>\n<\/li>\n<li><code>runScript(script)<\/code>: it actually adds a <code>&lt;script&gt;<\/code> tag in the current page of the tested application, making it easier to debug<\/li>\n<\/ul>\n<p>It involves the following topics<\/p>\n<ul>\n<li><a href=\"http:\/\/vskills.in\/certification\/tutorial\/information-technology\/selenium-professional\/test-language-specification\/\">Test language specification<\/a><\/li>\n<li><a href=\"http:\/\/vskills.in\/certification\/tutorial\/information-technology\/selenium-professional\/browser-and-variable-access-by-javascript\/\">Browser and variable access by JavaScript<\/a><\/li>\n<li><a href=\"http:\/\/vskills.in\/certification\/tutorial\/information-technology\/selenium-professional\/event-firing\/\">Event Firing<\/a><\/li>\n<\/ul>\n<div class=\"apply\">\n<h3><a href=\"https:\/\/www.vskills.in\/practice\/startPracticeTest\/Selenium-Integration-Test\">Free Selenium Practice Tests | Go To Selenium Practice Test Now<\/a><\/h3>\n<h3>Apply for Selenium Certification Now!!<\/h3>\n<p><a href=\"http:\/\/www.vskills.in\/certification\/Certified-Selenium-Professional\">http:\/\/www.vskills.in\/certification\/Certified-Selenium-Professional<\/a><\/p>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Selenium JavaScript Usage | Selenium Automation Testing Selenium Javascript Usage &#8211; Selenium Automation Testing Selenium has a mature API that caters to the majority of automation tasks that you may want to throw at it. That being said, you will occasionally come across problems that the API doesn&#8217;t really seem to support. This was very&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"open","template":"","meta":{"footnotes":""},"categories":[350],"tags":[397,7026,349,7027,6821,7025],"class_list":["post-829","page","type-page","status-publish","hentry","category-selenium","tag-javascript-usage","tag-selenium-automation-testing","tag-selenium-certification","tag-selenium-documentation","tag-selenium-professional","tag-selenium-webdriver"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v24.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Selenium JavaScript Usage | Selenium Automation Testing Online Course<\/title>\n<meta name=\"description\" content=\"In Selenium JavaScript Usage - Selenium RC launches the browser with itself as the proxy server (hence you get certificate warning in some modes) &amp; then it injects javascript. Read here.\" \/>\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.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Selenium JavaScript Usage | Selenium Automation Testing Online Course\" \/>\n<meta property=\"og:description\" content=\"In Selenium JavaScript Usage - Selenium RC launches the browser with itself as the proxy server (hence you get certificate warning in some modes) &amp; then it injects javascript. Read here.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/\" \/>\n<meta property=\"og:site_name\" content=\"Tutorial\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/vskills.in\/\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-12T08:43:14+00:00\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data1\" content=\"2 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/\",\"name\":\"Selenium JavaScript Usage | Selenium Automation Testing Online Course\",\"isPartOf\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\"},\"datePublished\":\"2013-01-02T09:48:49+00:00\",\"dateModified\":\"2024-04-12T08:43:14+00:00\",\"description\":\"In Selenium JavaScript Usage - Selenium RC launches the browser with itself as the proxy server (hence you get certificate warning in some modes) & then it injects javascript. Read here.\",\"breadcrumb\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Selenium JavaScript Usage | Selenium Automation Testing Online Course\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#website\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"name\":\"Tutorial\",\"description\":\"Vskills - A initiative in elearning and certification\",\"publisher\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#organization\",\"name\":\"Vskills\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"contentUrl\":\"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg\",\"width\":73,\"height\":55,\"caption\":\"Vskills\"},\"image\":{\"@id\":\"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/vskills.in\/\",\"https:\/\/x.com\/vskills_in\",\"https:\/\/www.linkedin.com\/company-beta\/1371554\/\",\"https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Selenium JavaScript Usage | Selenium Automation Testing Online Course","description":"In Selenium JavaScript Usage - Selenium RC launches the browser with itself as the proxy server (hence you get certificate warning in some modes) & then it injects javascript. Read here.","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.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/","og_locale":"en_US","og_type":"article","og_title":"Selenium JavaScript Usage | Selenium Automation Testing Online Course","og_description":"In Selenium JavaScript Usage - Selenium RC launches the browser with itself as the proxy server (hence you get certificate warning in some modes) & then it injects javascript. Read here.","og_url":"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/","og_site_name":"Tutorial","article_publisher":"https:\/\/www.facebook.com\/vskills.in\/","article_modified_time":"2024-04-12T08:43:14+00:00","twitter_misc":{"Est. reading time":"2 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/","name":"Selenium JavaScript Usage | Selenium Automation Testing Online Course","isPartOf":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website"},"datePublished":"2013-01-02T09:48:49+00:00","dateModified":"2024-04-12T08:43:14+00:00","description":"In Selenium JavaScript Usage - Selenium RC launches the browser with itself as the proxy server (hence you get certificate warning in some modes) & then it injects javascript. Read here.","breadcrumb":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/selenium-javascript-usage\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.vskills.in\/certification\/tutorial\/"},{"@type":"ListItem","position":2,"name":"Selenium JavaScript Usage | Selenium Automation Testing Online Course"}]},{"@type":"WebSite","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#website","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","name":"Tutorial","description":"Vskills - A initiative in elearning and certification","publisher":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.vskills.in\/certification\/tutorial\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#organization","name":"Vskills","url":"https:\/\/www.vskills.in\/certification\/tutorial\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/","url":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","contentUrl":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-content\/uploads\/2017\/07\/vskills-min-logo.jpg","width":73,"height":55,"caption":"Vskills"},"image":{"@id":"https:\/\/www.vskills.in\/certification\/tutorial\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/vskills.in\/","https:\/\/x.com\/vskills_in","https:\/\/www.linkedin.com\/company-beta\/1371554\/","https:\/\/www.youtube.com\/channel\/UCMWnscxPwRF_PqXo9B7q_Tw"]}]}},"_links":{"self":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/829","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/comments?post=829"}],"version-history":[{"count":8,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/829\/revisions"}],"predecessor-version":[{"id":59262,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/pages\/829\/revisions\/59262"}],"wp:attachment":[{"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/media?parent=829"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/categories?post=829"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.vskills.in\/certification\/tutorial\/wp-json\/wp\/v2\/tags?post=829"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}