tag:blogger.com,1999:blog-87703915918767020712024-03-28T20:30:09.493-07:00Selenium Automation blogs By Avinash PandeAvinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.comBlogger21125tag:blogger.com,1999:blog-8770391591876702071.post-72801622413395444982020-02-11T08:56:00.001-08:002020-02-11T08:56:43.216-08:00Handling JavaScript Popup in Selenium<div dir="ltr" style="text-align: left;" trbidi="on">
<a href="https://www.w3schools.com/js/js_popup.asp" target="_blank">https://www.w3schools.com</a><br />
<div>
There are three types of JavaScript pop-up-<br />
<ol style="text-align: left;">
<li>Alert </li>
<li>Confirm </li>
<li>Prompt</li>
</ol>
The question here come in to mind is- How do we identify the current pop-up is javascript pop-up?<br />
Answer is -<br />
<ul style="text-align: left;">
<li>Javascript pop-up doesn't have close (X) button on top right corner.</li>
<li>We couldn't do anything on pageunless we handle javascript pop-up.</li>
<li> Even we couldn't minimize or maximize the javascript pop-up.</li>
</ul>
<br />
To handle javascript pop-up in selenum we have to follow below steps-<br />
<br />
<ol style="text-align: left;">
<li>Navigate to site/URL.</li>
<li>Once the pop-up is opened the we need to Switch to alert using- driver.switchTo().alert();</li>
<li>perform operations like- accept, Dismiss, sendKeys & getText. </li>
</ol>
<br />
<h3 style="text-align: left;">
Handling Alert pop-up:</h3>
<br />
<div style="text-align: left;">
Alert pop-up has only ok button in selenium we have respective accept button. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
e.g.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: center;">
<img alt="" src="data:image/png;base64,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" /> </div>
<div style="text-align: left;">
<b>Program:</b></div>
<div style="text-align: left;">
<br /></div>
<pre style="line-height: 125%; margin: 0;"></pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #008800; font-weight: bold;">package</span> popup<span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.testng.annotations.Test</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">java.util.concurrent.TimeUnit</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.Alert</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.By</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.WebDriver</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.WebElement</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.testng.annotations.Test</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">selenium.Browser</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">public</span> <span style="color: #008800; font-weight: bold;">class</span> <span style="color: #bb0066; font-weight: bold;">JavaScriptPopUp</span>
<span style="color: #333333;">{</span>
<span style="color: #555555; font-weight: bold;">@Test</span><span style="color: #333333;">(</span>enabled<span style="color: #333333;">=</span><span style="color: #008800; font-weight: bold;">true</span><span style="color: #333333;">)</span>
<span style="color: #008800; font-weight: bold;">public</span> <span style="color: #333399; font-weight: bold;">void</span> <span style="color: #0066bb; font-weight: bold;">f</span><span style="color: #333333;">()</span> <span style="color: #008800; font-weight: bold;">throws</span> InterruptedException
<span style="color: #333333;">{</span> </pre>
<pre style="line-height: 125%; margin: 0;"> </pre>
<pre style="line-height: 125%; margin: 0;"> System.setProperty("webdriver.gecko.driver", "D:\\geckodriver\\geckodriver.exe");</pre>
<pre style="line-height: 125%; margin: 0;"> </pre>
<pre style="line-height: 125%; margin: 0;"> driver = new FirefoxDriver(); </pre>
<pre style="line-height: 125%; margin: 0;"> </pre>
<pre style="line-height: 125%; margin: 0;"> driver.get(<span style="background-color: #fff0f0;">"https://www.w3schools.com/js/tryit.asp?filename=tryjs_alert</span>");
driver<span style="color: #333333;">.</span><span style="color: #0000cc;">switchTo</span><span style="color: #333333;">().</span><span style="color: #0000cc;">frame</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"iframeResult"</span><span style="color: #333333;">);</span>
driver<span style="color: #333333;">.</span><span style="color: #0000cc;">findElement</span><span style="color: #333333;">(</span>By<span style="color: #333333;">.</span><span style="color: #0000cc;">tagName</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"button"</span><span style="color: #333333;">)).</span><span style="color: #0000cc;">click</span><span style="color: #333333;">();</span>
Thread<span style="color: #333333;">.</span><span style="color: #0000cc;">sleep</span><span style="color: #333333;">(</span><span style="color: #0000dd; font-weight: bold;">5000</span><span style="color: #333333;">);</span>
Alert alert <span style="color: #333333;">=</span> driver<span style="color: #333333;">.</span><span style="color: #0000cc;">switchTo</span><span style="color: #333333;">().</span><span style="color: #0000cc;">alert</span><span style="color: #333333;">();</span>
System<span style="color: #333333;">.</span><span style="color: #0000cc;">out</span><span style="color: #333333;">.</span><span style="color: #0000cc;">println</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"Test: "</span><span style="color: #333333;">+</span>alert<span style="color: #333333;">.</span><span style="color: #0000cc;">getText</span><span style="color: #333333;">());</span>
alert<span style="color: #333333;">.</span><span style="color: #0000cc;">accept</span><span style="color: #333333;">();</span>
<span style="color: #333333;"> }</span>
<span style="color: #333333;">}</span>
</pre>
<div style="text-align: left;">
<br />
<br />
<br />
<h3 style="text-align: left;">
Handling Prompt pop-up:</h3>
<ul style="text-align: left;">
<li>A prompt box is often used if you want the user to input a value before entering a page. </li>
</ul>
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li>When a prompt box pops up, the user will have to click either "OK" or "Cancel" to proceed after entering an input value.</li>
</ul>
<div style="text-align: left;">
</div>
<ul style="text-align: left;">
<li>If the user clicks "OK" the box returns the input value. If the user clicks "Cancel" the box returns null.</li>
</ul>
</div>
<div style="text-align: left;">
e.g.</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
</div>
<div style="text-align: center;">
<img alt="" src="data:image/png;base64,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" /></div>
<b>Program:</b><br />
<br />
<br />
<pre style="line-height: 125%; margin: 0;"><span style="color: #008800; font-weight: bold;">package</span> popup<span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.testng.annotations.Test</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">java.util.concurrent.TimeUnit</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.Alert</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.By</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.WebDriver</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.WebElement</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.testng.annotations.Test</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">selenium.Browser</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">public</span> <span style="color: #008800; font-weight: bold;">class</span> <span style="color: #bb0066; font-weight: bold;">JavaScriptPopUp</span>
<span style="color: #333333;">{</span>
<span style="color: #555555; font-weight: bold;">@Test</span><span style="color: #333333;">(</span>enabled<span style="color: #333333;">=</span><span style="color: #008800; font-weight: bold;">true</span><span style="color: #333333;">)</span>
<span style="color: #008800; font-weight: bold;">public</span> <span style="color: #333399; font-weight: bold;">void</span> <span style="color: #0066bb; font-weight: bold;">prompt</span><span style="color: #333333;">()</span> <span style="color: #008800; font-weight: bold;">throws</span> InterruptedException
<span style="color: #333333;">{</span>
WebDriver driver <span style="color: #333333;">=</span> Browser<span style="color: #333333;">.</span><span style="color: #0000cc;">getBrowser</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"ff"</span><span style="color: #333333;">);</span>
Browser<span style="color: #333333;">.</span><span style="color: #0000cc;">goToPage</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"https://www.w3schools.com/js/tryit.asp?filename=tryjs_prompt"</span><span style="color: #333333;">);</span>
driver<span style="color: #333333;">.</span><span style="color: #0000cc;">switchTo</span><span style="color: #333333;">().</span><span style="color: #0000cc;">frame</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"iframeResult"</span><span style="color: #333333;">);</span>
driver<span style="color: #333333;">.</span><span style="color: #0000cc;">findElement</span><span style="color: #333333;">(</span>By<span style="color: #333333;">.</span><span style="color: #0000cc;">tagName</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"button"</span><span style="color: #333333;">)).</span><span style="color: #0000cc;">click</span><span style="color: #333333;">();</span>
Thread<span style="color: #333333;">.</span><span style="color: #0000cc;">sleep</span><span style="color: #333333;">(</span><span style="color: #0000dd; font-weight: bold;">5000</span><span style="color: #333333;">);</span>
Alert alert <span style="color: #333333;">=</span> driver<span style="color: #333333;">.</span><span style="color: #0000cc;">switchTo</span><span style="color: #333333;">().</span><span style="color: #0000cc;">alert</span><span style="color: #333333;">();</span>
System<span style="color: #333333;">.</span><span style="color: #0000cc;">out</span><span style="color: #333333;">.</span><span style="color: #0000cc;">println</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"Test: "</span><span style="color: #333333;">+</span>alert<span style="color: #333333;">.</span><span style="color: #0000cc;">getText</span><span style="color: #333333;">());</span>
alert<span style="color: #333333;">.</span><span style="color: #0000cc;">sendKeys</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"Avinash"</span><span style="color: #333333;">);</span>
Thread<span style="color: #333333;">.</span><span style="color: #0000cc;">sleep</span><span style="color: #333333;">(</span><span style="color: #0000dd; font-weight: bold;">2000</span><span style="color: #333333;">);</span>
alert<span style="color: #333333;">.</span><span style="color: #0000cc;">accept</span><span style="color: #333333;">();</span>
WebElement ele <span style="color: #333333;">=</span> driver<span style="color: #333333;">.</span><span style="color: #0000cc;">findElement</span><span style="color: #333333;">(</span>By<span style="color: #333333;">.</span><span style="color: #0000cc;">tagName</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"p"</span><span style="color: #333333;">));</span>
System<span style="color: #333333;">.</span><span style="color: #0000cc;">out</span><span style="color: #333333;">.</span><span style="color: #0000cc;">println</span><span style="color: #333333;">(</span>ele<span style="color: #333333;">.</span><span style="color: #0000cc;">getText</span><span style="color: #333333;">());</span>
<span style="color: #333333;">}</span>
<span style="color: #333333;">}</span></pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #333333;"> </span></pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #333333;"> </span></pre>
<pre style="line-height: 125%; margin: 0;"><span style="color: #333333;"> </span></pre>
<h3 style="line-height: 125%; margin: 0px; text-align: left;">
<span style="color: #333333;">Handling Confirm Pop-Up:</span></h3>
<div style="line-height: 125%; margin: 0px; text-align: left;">
<br /></div>
<ul style="text-align: left;">
<li><span style="color: #333333;">A confirm box is often used if you want the user to verify or accept something.</span></li>
</ul>
<div style="line-height: 125%; margin: 0px; text-align: left;">
<span style="color: #333333;"></span></div>
<ul style="text-align: left;">
<li><span style="color: #333333;">When a confirm box pops up, the user will have to click either "OK" or "Cancel" to proceed.</span></li>
</ul>
<ul style="text-align: left;">
<li><span style="color: #333333;">If the user clicks "OK", the box returns true. If the user clicks "Cancel", the box returns false.</span></li>
</ul>
</div>
<span style="color: #333333;"></span><br />
<span style="color: #333333;">e.g.</span><br />
<span style="color: #333333;"><br /></span>
<br />
<div style="text-align: center;">
<span style="color: #333333;"><img alt="" src="data:image/png;base64,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" /></span></div>
<span style="color: #333333;"><br /></span>
<span style="color: #333333;"><br /></span>
<span style="color: #333333;"><br /></span>
<span style="color: #333333;"><br /></span>
<span style="color: #333333;"><b>Program:</b></span><br />
<br />
<pre style="line-height: 125%; margin: 0;"><span style="color: #008800; font-weight: bold;">package</span> popup<span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.testng.annotations.Test</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">java.util.concurrent.TimeUnit</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.Alert</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.By</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.WebDriver</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.openqa.selenium.WebElement</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">org.testng.annotations.Test</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">import</span> <span style="color: #0e84b5; font-weight: bold;">selenium.Browser</span><span style="color: #333333;">;</span>
<span style="color: #008800; font-weight: bold;">public</span> <span style="color: #008800; font-weight: bold;">class</span> <span style="color: #bb0066; font-weight: bold;">JavaScriptPopUp</span>
<span style="color: #333333;">{</span>
<span style="color: #555555; font-weight: bold;">@Test</span><span style="color: #333333;">(</span>enabled<span style="color: #333333;">=</span><span style="color: #008800; font-weight: bold;">true</span><span style="color: #333333;">)</span>
<span style="color: #008800; font-weight: bold;">public</span> <span style="color: #333399; font-weight: bold;">void</span> <span style="color: #0066bb; font-weight: bold;">confirmTest</span><span style="color: #333333;">()</span> <span style="color: #008800; font-weight: bold;">throws</span> InterruptedException
<span style="color: #333333;">{</span>
WebDriver driver <span style="color: #333333;">=</span> Browser<span style="color: #333333;">.</span><span style="color: #0000cc;">getBrowser</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"ff"</span><span style="color: #333333;">);</span>
Browser<span style="color: #333333;">.</span><span style="color: #0000cc;">goToPage</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"https://www.w3schools.com/js/tryit.asp?filename=tryjs_confirm"</span><span style="color: #333333;">);</span>
driver<span style="color: #333333;">.</span><span style="color: #0000cc;">switchTo</span><span style="color: #333333;">().</span><span style="color: #0000cc;">frame</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"iframeResult"</span><span style="color: #333333;">);</span>driver<span style="color: #333333;">.</span><span style="color: #0000cc;">findElement</span><span style="color: #333333;">(</span>By<span style="color: #333333;">.</span><span style="color: #0000cc;">tagName</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"button"</span><span style="color: #333333;">)).</span><span style="color: #0000cc;">click</span><span style="color: #333333;">();</span>
Thread<span style="color: #333333;">.</span><span style="color: #0000cc;">sleep</span><span style="color: #333333;">(</span><span style="color: #0000dd; font-weight: bold;">5000</span><span style="color: #333333;">);</span>
Alert alert <span style="color: #333333;">=</span> driver<span style="color: #333333;">.</span><span style="color: #0000cc;">switchTo</span><span style="color: #333333;">().</span><span style="color: #0000cc;">alert</span><span style="color: #333333;">();</span>
System<span style="color: #333333;">.</span><span style="color: #0000cc;">out</span><span style="color: #333333;">.</span><span style="color: #0000cc;">println</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"Test: "</span><span style="color: #333333;">+</span>alert<span style="color: #333333;">.</span><span style="color: #0000cc;">getText</span><span style="color: #333333;">());</span>
alert<span style="color: #333333;">.</span><span style="color: #0000cc;">dismiss</span><span style="color: #333333;">();</span>
WebElement ele <span style="color: #333333;">=</span> driver<span style="color: #333333;">.</span><span style="color: #0000cc;">findElement</span><span style="color: #333333;">(</span>By<span style="color: #333333;">.</span><span style="color: #0000cc;">tagName</span><span style="color: #333333;">(</span><span style="background-color: #fff0f0;">"p"</span><span style="color: #333333;">));</span>
System<span style="color: #333333;">.</span><span style="color: #0000cc;">out</span><span style="color: #333333;">.</span><span style="color: #0000cc;">println</span><span style="color: #333333;">(</span>ele<span style="color: #333333;">.</span><span style="color: #0000cc;">getText</span><span style="color: #333333;">());</span>
<span style="color: #333333;">}</span>
<span style="color: #333333;">}</span></pre>
<br />
<br />
<span style="color: #333333;"><b>References:</b></span><br />
<br />
<span style="color: #333333;"><span id="goog_1045230857"></span><a href="https://www.blogger.com/"></a><span id="goog_1045230858"></span>https://www.w3schools.com/js/js_popup.asp</span><br />
<span style="color: #333333;"><b> </b></span></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com0tag:blogger.com,1999:blog-8770391591876702071.post-59107978771707169262019-11-03T09:08:00.000-08:002019-12-10T08:38:01.639-08:00selenium xpath in detail<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
<h3 style="text-align: left;">
<b></b></h3>
<h3 style="text-align: left;">
<b>What is XPATH?</b></h3>
<ul style="text-align: left;">
<li>It is xml path.</li>
<li>It is one of the locator type in selenium.</li>
<li>It uses path expression to navigate in XML document and to identify a node or number of nodes. </li>
<li>XPATH is much more advance/powerful than any locators in selenium but xpath engine (e.g. Handling xpath: xpath calculate on IEBrowser may or may not work on Firefox browser) is different according to different browsers. It has number of build in functions.</li>
<li>XPath are used to handle complex and dynamic xpath. </li>
</ul>
<br />
<h3 style="text-align: left;">
<b>Types of XPATH in Selenium-</b></h3>
<ol style="text-align: left;">
<li>Absolute XPath</li>
<li>Relative XPath </li>
</ol>
<br />
<h3 style="text-align: left;">
<b>What is Absolute XPath?</b></h3>
<ul style="text-align: left;">
<li>Absolute path starts from <HTML> tag.</li>
<li>It uses / ( forward slash ).</li>
<li>It is used to identify any element direct way by consider all the tag starts from <HTML> tag.</li>
<li>While considering a path to identify node/tag if new tags gets added in between then absolute path which was working earlier now it won't work as new tags gets added in path in between.</li>
</ul>
</div>
<br />
<b>Example:</b><br />
<br />
<b> https://www.google.com/ <a href="http://=> To identify Gmail link from right top corner." target="_blank">Google</a></b><br />
<br />
<b>html/body/div/div/div/div/div/div/div/a </b> => To identify Gmail link from right top corner.<br />
<br />
If new tags lets <b>div</b> gets added in DOM then above xpath may gets changed and absolute<br />
xpath may be won't work.<br />
<ul style="text-align: left;">
<li>It is much more faster than <b>"Relative xpath"</b> as it holds the direct path to the target node/tag/element from start <Html> tag.</li>
<li>But mostly we never going to use this one as it holds a long string path and it is difficult to maintain or handle it. It is not a shortend path.</li>
</ul>
<br />
<br />
<h3 style="text-align: left;">
<b>What is Relative XPath?</b></h3>
<ul style="text-align: left;">
<li>It uses <b>// </b> ("forward double slash") .</li>
<li>It will consider any node/element/tag as a refernce point from where either we can traverse forard or reverse direction to identify target node/tag.</li>
<li>Here reference point we consider is more stable tag/node where we could understand it never be going to remove or change in the DOM.</li>
<li>It is not faster as compared to <b>"Absolute XPath" </b>as we are considering any tag/node in a DOM to traverse towards target element/tag. So searchng time is needed as we are not considering a path starts from <HTML> tag and succedding tags. </li>
<li>It is mostly used as we are considering any node as a reference node (stable node) from a DOM.</li>
</ul>
<b>Example:</b><br />
<br />
<b><b> Site: https://www.google.com/ <a href="https://www.google.com/" target="_blank">Google</a></b></b><br />
<br />
<b> //a[contains(text(),'Gmail')] </b> => To identify Gmail link from right top corner. <br />
<br />
<br />
<h3 style="text-align: left;">
<b>XPath Axes:</b> </h3>
XPath axis represents the relationship between current node and other nodes those are used to locate current node.<br />
<b> </b><br />
<ol style="text-align: left;">
<li><b>ancestor</b></li>
<li><b>parent </b></li>
<li><b>self</b></li>
<li><b>attribute</b></li>
<li><b>child</b></li>
<li><b>descendant</b></li>
<li><b>following</b></li>
<li><b>following-sibling</b></li>
<li><b>preceding</b></li>
<li><b>preceding-sibling </b></li>
</ol>
To Test all above axes <b>Site we used is:</b> <span style="color: blue;">https://www.facebook.com/r.php</span><br />
<br />
<b>1. Ancestor:</b><br />
<b> </b>It will select parent, grand parent or grand-grand parent of the current node.<br />
<b> </b><br />
<b> Site: </b>https://www.facebook.com/r.php (<a href="https://www.facebook.com/r.php" target="_blank">click here</a> )<br />
<b> Example:</b><br />
<b> //input/ancestor::* => </b>Find any parent/grand parent (any tag) of first input tag.<b></b><br />
<b> //input/ancestor::form => </b>Find form tags which is the parent/grand parent of input tag.<br />
Here we explicitly specified to find <b>form</b> tag earlier we want<br />
any tag so we used astrik (<b>*</b>) .<br />
<b> //input//ancestor::div[@id='reg_box'] => </b>Find the <b>div</b> tag which will be parent or grad<br />
parent ( <b>ancestor</b> ) of input tag.<br />
<br />
<b></b>
<b></b>
<b>2. parent:</b><br />
It will select the parent of the current node. Current node specifies the node before the scope resolution operator.<br />
If the specified node is node the exact and immediate parent then it will not return/find the parent node.<br />
<b> </b><br />
<b></b><br />
<b> Site: https://www.facebook.com/r.php</b><br />
<b> Example:</b><br />
<b> </b><br />
<b> //input[@id='u_0_n']/parent::* =></b> we want to find parent any tag (*) of the current<br />
node <b>(input</b> tag) whose id is 'u_0_n' i.e. First Name<br />
text box.<br />
<br />
<b>//input[@id='u_0_n']/parent::div</b> => Find the immediate parent as "Div" tag of the current<br />
node.<br />
<br />
<b></b>
<b>//input[@id='u_0_n']/parent::form</b> => It will not find the form as parent for input tag<br />
because it is not a immediate parent.<br />
<br />
<b></b>
<b>3. Self:</b><br />
<b> </b>It will find/select the current node it self.<br />
<br />
<b>Example:</b><br />
//input[@id='u_0_n']/self::* => Select the current node itself even by specifying<br />
astrik.<br />
//input[@id='u_0_n']/self::input => Select the current by specifying input tag.<br />
<br />
//input[@id='u_0_n']/self::input[@id='u_0_n'] => Select the current tag by specifying tag<br />
name with attribute value like id.<br />
<br />
<b>4. A</b><b>ttribute:</b><br />
<ul style="text-align: left;">
<li>It will select/find the tag by considering their attribute.<b> </b></li>
<li>For attribute selection we have to use @.</li>
<li>we can consider any attribute those are available in tag like-id, name, text, class, value etc..<b><br /></b></li>
</ul>
<br />
<b> Example:</b><br />
<br />
<b> </b>//*[@id='u_0_n'] => Select any tag (astrik) whose id=u_0_n. <b>i.e.</b> <b>First Name</b><br />
<br />
//input[@id='u_0_n'] => Select any input tag whose id=u_0_n. <b> i.e First Name</b><br />
<br />
<b> </b> //*[@name='firstname'] => Select the First Name text box whose name is <b>"firstname".</b><br />
<br />
//*[@class='inputtext _58mg _5dba _2ph-'] => Find any tag whose class value is specified.<br />
<br />
//input[@class='inputtext _58mg _5dba _2ph-']<b> => </b>Find any input tags whose class value is<br />
specified.<b></b><br />
<b><br /></b>
//input[@id='u_0_n'][@class='inputtext _58mg _5dba _2ph-'] => Select input tag only whose id<br />
and class specified match. So<br />
here <b>AND </b>condition is used if<br />
we use multiple attribute. <b></b><br />
<b><br /></b>
<b> //</b>input[@id='u_0_n'][@name='firstname']<b> => </b>Select the input tag whose id & name value<br />
specified is matched.<b> </b><br />
<b><br /></b>
<b><br /></b>
<b>5. </b><b><b>child:</b></b><br />
<b><b> </b></b>Select all the child node of the current node. (Not grand child only immediate child)<b><b>.</b></b><br />
<b><b><br /></b></b>
<b><b> Example:</b></b><br />
<b><b><br /></b></b>
//div[@id='reg_form_box']/child::* => Select/find all the childs (any tag) of a specified <b>div</b> tag.<br />
<br />
//div[@id='reg_form_box']/child::div => It will return all the div those are immediate child of<br />
specified tag/current node/tag.<br />
<br />
<b><b></b></b>
//select[@id='day']/child::* => It will return/find all the child ( <b>option tags</b> ) of a select tag.<br />
<br />
<b><b></b></b>
//select[@id='day']/child::option[@value='21'] => It will select the child node (<b>option tag </b>) of a<br />
select tag whose value is <b>'21'.</b><br />
<br />
<br />
<b>6. </b><b><b>Descendant:</b></b><br />
<b><b> </b></b>It will selects all the children, grand-children of the current node.<br />
<br />
<b>Example:</b><br />
<br />
<b> </b>//form[@id='reg']/descendant::input => Select all the <b>input </b>tag (child/grand child) of the <b>form</b><br />
tag whose id is '<b>reg'</b>.<b> </b><br />
<b> </b><br />
<b><b></b></b><br />
//span[@id='u_0_10']/descendant::select => Select the <b>'select' </b>tag which is the child of span.<br />
<br />
<b><b></b></b>
//span[@id='u_0_10']/descendant::option => Select the <b>'option' </b>tag which is the grand child of<br />
span tag.<br />
<br />
<b><b></b></b>
<b><b></b></b>
<b>7. following:</b><br />
<br />
<b> </b>Select the rest/all of the tags <b>after the closing of the current tag from the document</b>.<br />
<b> </b><br />
<b><b></b></b><br />
<b> Example:</b><br />
<b> </b>//span[@id='u_0_10']/following::* => It will return all the tags after the closing of span tag.<br />
<b> </b><br />
<b><b></b></b><br />
//span[@id='u_0_10']/following::button[contains(text(),'Sign Up')] => To get the <b>Sign Up</b> button<br />
<br />
<b><b></b></b>
//span[@id='u_0_10']/following::input[@name='sex'] => To select all three genders.<br />
<br />
<br />
<br />
<b>8. following-sibling:</b><br />
<br />
<b> </b>Select all the sibling nodes of the current node.<b> </b><br />
<br />
<b>Example:</b><br />
<b>Site for Testing: </b>https://www.facebook.com/<br />
<b> </b>Below example will work on https://www.facebook.com where login form should be there.<br />
<br />
Login Form (Email or phone , Passowrd, forgotten account, Log In these controls are placed<br />
on Table<br />
<b>First TR- </b>Indicates Email or phone and Password label<br />
<b>Second TR</b> - Indicates Text boxes for email & Password and Login Button<br />
<b>Third TR</b>- Indicates Forgotten account link<br />
<br />
//table//tr/following-sibling::tr => It will return second TR (two textboxes and Log In button)<br />
<br />
//table//tr/following-sibling::tr[2] => Select the third TR which is the sibling of first TR.<br />
<br />
//table//tr[2]/td/following-sibling::td => Select the sibling <b>'td' (second/third TD) </b>of the second<br />
TR (Two text boxex and Log In Button)<br />
<br />
Below example is to select the Mobile Number text box from <b>Create An Account Form.</b><br />
<br />
//div[@id='reg_form_box']/div/following-sibling::div -> Select the Mobile Number Text box.<br />
<br />
<br />
<b>9. preceding:</b><br />
<br />
<b> </b>It will selects all nodes/tags/element that appear before the current node in the document, except ancestors, attribute nodes and namespace nodes.<br />
<br />
It will select all the node is upword direction except parent, ancestor (i.e. It will select all sibling tags/elements of direct parent or ancestor .) <b> </b><br />
<br />
<b> Example:</b><br />
<br />
//form/preceding::form => Select the first form (Log In form)<br />
<b> </b><br />
//form/preceding::form//table//input[@id='email']=> Select <b>Email or Phone </b>Text Box from Log<br />
In form.<br />
<br />
//form/preceding::form//table//input[@id='pass'] <b>=> </b>Select<b> Password </b>Text Box from Log In form.<br />
<br />
<b></b>
<b></b>
<b>10. preceding-sibling:</b><br />
<br />
<b> </b>It will select the all the siblings(all are st same level ) nodes/tags/elements before the current node.<br />
<b> </b><br />
<b></b><br />
<b> Example:</b><br />
<br />
//table//tr[3]/preceding-sibling::tr => Select the second row(email,password textboxes) from<br />
the Log In form<br />
<b> </b><br />
<b></b><br />
//table//tr[3]/preceding-sibling::tr [1]=> Select the first row(email or phone, Password label)<br />
from Log In form.<br />
<br />
<b></b>
//div[@id='u_0_12']/preceding-sibling::div[6] => Select the Mobile Number or email address<br />
text box from create an account form.<br />
OR<br />
//div[@id='u_0_12']/preceding-sibling::div[@id='birthday_wrapper']=> Select the Mobile<br />
Number or email address text box from create an account form.<br />
<br />
<br />
<br />
<h3 style="text-align: left;">
<b>XPath Methods:</b></h3>
<b> 1. Starts-with()</b><br />
<b>2. ends-with()</b><br />
<b>3. contains()</b><br />
<b>4. text()</b><br />
<br />
<b> </b>All above methods are used to handle dynamic web controls/elements.<b> </b><br />
<b> </b>To Test all above methods <b>Site we used is:</b> <span style="color: blue;">https://www.facebook.com/r.php</span><span style="color: blue;"></span><br />
<br />
<b>1. starts-with(): </b><br />
<br />
<b> </b>Starts-with function finds/handles the control whose value (some part of the value) changes frequently on any action on control/page or refresh<b> </b>the page. So to find such kind of controls starts-with function is used. So on the basis of partial text/atribute value matched it will find the control.<br />
<br />
<b>Example:</b><br />
<b> </b><br />
<b> </b>//input[starts-with(@id,'ema')] => Find any input tag whose attribute id starts with value 'ema' i.e. <b>Email or Phone text box</b> from Facebook Log In page.<br />
<b> </b><br />
//input[starts-with(@id,'pas')] => Find only input tag whose attribute starts with 'pas' i.e.<br />
<b> Password text box</b> from Facebook Log In page.<br />
<br />
//input[starts-with(@type,'sub')=> Find input tag whose sttribute type starts with 'sub' i.e. <b>Log </b><br />
<b> In</b> button from Log In page<br />
<br />
//*[starts-with(@name,'firstna')] => Find any tag whose attribute name starts with 'firstna' i.e.<br />
First Name text box from create a new account page.<br />
<br />
//*[starts-with(text(),'Forgotten')] => Find any tag (as *<b> </b>is there<b>) </b>whose text starts with<br />
'Forgotten' so it will find the Forgotten account? link from<br />
Log In page.<br />
<br />
<b>2. ends-with():</b><br />
<br />
<b> </b>ends-with function finds/handles the control whose value (some
part of the value) changes frequently on any action on control/page or
refresh the page. So to find such kind of controls ends-with
function is used. So on the basis of partial text/atribute value matched
it will find the control.<br />
If value of any attribute or text whose end part is constant then we can use ends-with function.<br />
<br />
<b>Example:</b><br />
<b> </b><br />
<b> </b>//input[ends-with(@id,'ail')]
=> Find any input tag whose attribute id starts with value 'ema'
i.e. <b>Email or Phone text box</b> from Facebook Log In page.<br />
<b> </b>OR<br />
//input[contains(@id,'ail')]<br />
<br />
<br />
<br />
//input[ends-with(@id,'ss')] => Find only input tag whose attribute starts with 'pas' i.e.<br />
<b> Password text box</b> from Facebook Log In page.<br />
<br />
OR<br />
//input[contains(@id,'ss')]<br />
<br />
<br />
<br />
//input[ends-with(@type,'bmit')]=> Find input tag whose sttribute type starts with 'sub' i.e. <b>Log </b><br />
<b> In</b> button from Log In page<br />
OR<br />
//input[contains(@type,'mit')]<br />
<br />
<br />
<br />
//*[starts-with(@name,'stname')] => Find any tag whose attribute name starts with 'firstna' i.e.<br />
First Name text box from create a new account page.<br />
OR<br />
//*[contains(@name,'stname')]<br />
<br />
<br />
//*[starts-with(text(),'account?')] => Find any tag (as *<b> </b>is there<b>) </b>whose text starts with<br />
'Forgotten' so it will find the Forgotten account? link from<br />
Log In page.<br />
OR<br />
//*[contains(text(),'account?')]<br />
<br />
<span style="color: red;"><b><i>Note: </i></b>The <code>ends-with</code> function is part of XPath 2.0 but browsers generally only support 1.0.</span><br />
<br />
<span style="color: red;"><span style="color: black;">So, We can use contains() & text() methods to find the tags/controls/webelements with specific pattern without using ends-with method.</span></span><br />
<br />
<br />
<span style="color: red;"><span style="color: black;"><b>3. Contains:</b> </span></span><br />
<br />
<span style="color: red;"><span style="color: black;"> Contains method generally used if some portion of text or attribute value is static then <b>contains</b> method is used. But this method returns mostly multiple controls as it will check for contains particular text in attribute value.</span></span><br />
<br />
<span style="color: red;"><span style="color: black;"> </span></span><span style="color: red;"><span style="color: black;"><b>Example:</b></span></span><br />
<b> </b><br />
<b> </b>//input[contains(@id,'ail')]
=> Find any input tag whose attribute id starts with value 'ema'
i.e. <b>Email or Phone text box</b> from Facebook Log In page.<br />
<b> </b> <br />
//input[contains(@id,'ss')] => Find only input tag whose attribute starts with 'pas' i.e.<br />
<b> Password text box</b> from Facebook Log In page.<br />
<br />
//input[contains(@type,'mit')]=> Find input tag whose attribute type starts with 'sub' i.e. <b>Log </b><br />
<b> In</b> button from Log In page<br />
<br />
//*[contains(@name,'stname')] => Find any tag whose attribute name starts with 'firstna'<br />
i.e. First Name text box from create a new account page.<br />
<br />
<br />
//*[contains(text(),'account?')] => Find any tag (as *<b> </b>is there<b>) </b>whose text starts with<br />
'Forgotten' so it will find the Forgotten account? link from<br />
Log In page.<br />
<br />
//a[contains(text(),'stagr')] => Find anchor tag whose link text contains 'stagr' i.e. <b>Instagram</b><br />
<br />
<br />
<b>4. text():</b><br />
<br />
<b> </b>This method is used with any other methods like starts-with, ends-with and contains method. This method find the text in between start and end of the tag.<br />
<br />
<b>ex: </b><br />
<a href="/r.php" title="Sign up for Facebook"><span style="color: blue;"><b>Sign Up</b></span></a><b></b><br />
So, here text() method capture <b>Sign Up </b>text from anchor <a> tag.<br />
<br />
<b></b>
<b>Example:</b><br />
<br />
//*[contains(text(),'account?')] => Find any tag (as * is there) whose text starts with<br />
'Forgotten' so it will find the Forgotten account? link from<br />
Log In page.<br />
<br />
//a[contains(text(),'stagr')] => Find anchor tag whose link text contains 'stagr' i.e. <b>Instagram</b><br />
<br />
<b>Site for Testing:</b> https://www.facebook.com/r.php<br />
<h3 style="text-align: left;">
<b>XPath Wildcards:</b></h3>
<div style="text-align: left;">
<b>1. </b><b>* ( </b>Matches any element node )</div>
<div style="text-align: left;">
<b>2. </b><b>@* ( </b>Matches any attribute node )</div>
<div style="text-align: left;">
<b>3. </b><b>node() ( </b>Matches any node of any kind<b> )</b></div>
<div style="text-align: left;">
<b> </b><b><b><b>For all above wildcards to test we used </b></b><b><b><b>Site is:</b> <span style="color: blue;">https://www.facebook.com/r.php</span></b></b> </b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>1. * :</b></div>
<div style="text-align: left;">
<b> </b>It indicates any tag/node in DOM with matches condition.</div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
<b> Example:</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b> </b>//*[@id='email'] => Select any tag whose attribute id value is <b>'email'.</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b> </b>//table/* => Select any child of parent tag <b>'table'</b>.</div>
<div style="text-align: left;">
<b> </b><br />
<b></b></div>
<div style="text-align: left;">
<b>2. @* :</b></div>
<div style="text-align: left;">
<b> </b>It indicates any attribute of a specified tag or any tag with matches specified value/condition.</div>
<div style="text-align: left;">
<b> </b><br />
<b></b></div>
<div style="text-align: left;">
<b> Example:</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b> </b>//*[@*='email'] => Select any tag whose any attribute value is <b>'email'.</b></div>
<div style="text-align: left;">
OR</div>
<div style="text-align: left;">
//input[@*='email'] => Select only Input tag whose any attribute value is <b>'email'.</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b> </b><br />
<b></b></div>
<div style="text-align: left;">
<b> </b>//*[@*='pass'] => Select any tag whose any attribute value is <b>'pass'.</b></div>
<div style="text-align: left;">
OR</div>
<div style="text-align: left;">
//input[@*='pass'] => Select only input tag whose any attribute values matches <b>'pass'.</b></div>
<div style="text-align: left;">
<br />
<b></b></div>
<div style="text-align: left;">
<br />
<b></b></div>
<div style="text-align: left;">
//*[@*='firstname'] => Select any tag whose any attribute value matches with <b>'firstname'.</b><br />
<b></b></div>
<div style="text-align: left;">
OR</div>
<div style="text-align: left;">
//input[@*='firstname'] => Select only input tag whose any attribute value matches <b>'firstname'.</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><b>3. </b><b>node() :</b></b></div>
<div style="text-align: left;">
<b><b> </b></b>It will return any node/tag.<br />
<b><b></b></b></div>
<div style="text-align: left;">
<b><b> </b></b></div>
<div style="text-align: left;">
<b><b> Example:</b></b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><b> </b></b>//node() => Select any node or all node from current DOM. Starting from HTML tag.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><b> //</b></b>node()<b><b>//</b></b>table => Select table from current DOM.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><b> </b></b>//table//node() => Select all the node (child node/grand child of table tag only ).<b><b> </b></b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><b> </b></b>//table/node() => Select Immediate child (any immediate child ) tag i.e. <b>tbody </b>tag. <b><b> </b></b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br />
<h3 style="text-align: left;">
Path Expression:</h3>
<div style="text-align: left;">
<b>1. / ( </b>Selects from the root node )</div>
<div style="text-align: left;">
<b>2. // </b>( Selects nodes any where in the document from the current node )<b> </b></div>
<div style="text-align: left;">
<b>3. . ( </b>Select the current node/tag )<b><br /></b></div>
<div style="text-align: left;">
<b>4. .. ( </b>Select the parent node of the current Node/Tag )<br />
<b></b></div>
<div style="text-align: left;">
<b>5. @ ( </b>Selects attribute like id, name, type, option etc... ) </div>
</div>
<div style="text-align: left;">
<br />
<br />
1. / :<br />
This path expression is used to select/consider from the root node. Like <b>Absolute Path </b>where we need to find a node then we have to traverse from <HTML> tag to node to select.<br />
<b>Example:</b><br />
<span style="color: blue;"> Site: https://www.facebook.com/r.php</span><br />
<span style="color: blue;"> <span style="color: black;">/html/body/....../till current node </span></span><br />
<br />
<b>2.</b> <b> // :</b><br />
<span style="color: blue;"><b> </b><span style="color: black;"> Select any node/tag any where in the document without considering from <HTML> tag (from start of the document ). We can consider any tag/node in document as a reference tag whose name or id property is fixed and the can traversed to expected/required node.</span></span><br />
<span style="color: blue;"><span style="color: black;"> <b>Example:</b></span></span><br />
<span style="color: blue;"><span style="color: black;"><b> Site: </b><span style="color: blue;">https://www.facebook.com/r.php</span></span></span><br />
<span style="color: blue;"><span style="color: black;"><b> </b>//table//input[@id='email'] => Here in the document we have consider a "table" as a reference tag </span></span><br />
<span style="color: blue;"><span style="color: black;"> and then we go drill down to node input whose @id='email'. </span></span><br />
<br />
<span style="color: blue;"><span style="color: black;"> //form//input[@name='firstname'] => Find "form" tag anywhere in the current DOM and consider </span></span><br />
<span style="color: blue;"><span style="color: black;"> as a reference node/tag then find any input tag whose </span></span><br />
<span style="color: blue;"><span style="color: black;"> attribute @name='firstname'. </span></span><br />
<br />
<span style="color: blue;"><span style="color: black;"><b>3. . (Single Dot )</b></span></span><br />
<span style="color: blue;"><span style="color: black;"><b> </b></span></span><br />
<span style="color: blue;"><span style="color: black;"><b> </b>Select the current node or a node itself.</span></span><br />
<span style="color: blue;"><span style="color: black;"><b> Example:</b></span></span><br />
<span style="color: blue;"><span style="color: black;"><b> </b></span></span><br />
<span style="color: blue;"><span style="color: black;"><b> //</b>table/. => select "table" node/tag any where in the document and select it self ( /. ) .</span></span><br />
<span style="color: blue;"><span style="color: black;"><b> //</b>table//. => Select "table" node/tag any where in the document along with current node itself and </span></span><br />
<span style="color: blue;"><span style="color: black;"> its childrens tags/nodes of table tag.</span></span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>4. .. (Double Dot):</b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<b> </b>Select the parent of the current node (not ancestor , only parent).</div>
<div style="text-align: left;">
<b> Example:</b></div>
<div style="text-align: left;">
<b> Site: </b>https://www.facebook.com/r.php</div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
<b> </b>//table/<b>..</b> => It will return the parent of table node here it will return <b>"form"</b> tag.</div>
<div style="text-align: left;">
<b> </b>//form/<b>.. => </b>It will return the parent of form tag i.e. <b>DIV</b> in this case. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>5. @</b></div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
<b> </b>It is used </div>
<div style="text-align: left;">
<b> Example:</b></div>
<div style="text-align: left;">
<b> </b>//@name => It will select all the attribute that are named as <b>"name"</b> here .</div>
<div style="text-align: left;">
//@id => It will select all the attribute that are named as <b>"id"</b> here.</div>
<div style="text-align: left;">
//@value => It will select all the attribute that are named as <b>"value"</b> here.<br />
<br />
<br />
<h3 style="text-align: left;">
Array in XPath or Predicates:</h3>
<div style="text-align: left;">
Predicates are used to find a specific value like array[index] or that contains a specific value.</div>
<div style="text-align: left;">
predicates are always embedded in square brackets.</div>
<div style="text-align: left;">
<b><br /></b></div>
<div style="text-align: left;">
<b>1. [index/value]</b></div>
<div style="text-align: left;">
<b>2. last()</b></div>
<div style="text-align: left;">
<b>3. position()</b></div>
<div style="text-align: left;">
<b>4. [@attribute]</b></div>
<div style="text-align: left;">
<b>5. [ @attribute='value'] </b></div>
<div style="text-align: left;">
<b>6. [ attributename > attribute value ]</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>1. [index/value] :</b></div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
we can select any child node and any node<b> </b>by providing specific index value (integer value).</div>
<div style="text-align: left;">
<b>Example:</b></div>
<div style="text-align: left;">
Site: https://www.facebook.com Login page</div>
<div style="text-align: left;">
//table/tr[3] => It will select the third row from log in form i.e. "Forgotten Password?" link row.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[@id='day']/option[22] => Select option value=21 from Birthday Day drop down.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[2] => Select 'select' tag in document with index=2. i.e Birthday Month Drop Down list. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>2. last() :</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Select the last element.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Example:</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[@id='day']/option[last()] => Select the last option from day drop downlist i.e. 31.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[@id='month'/option[last()] =><b> </b>Select the last option from day drop downlist i.e. Dec. </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[@id='year'/option[last()] => Select the last option from day drop downlist i.e. 1905.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//table//tr[last()] =>Select the any child as TR (Here third TR <b>'Forgotten Password?'</b>) from Table tag </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//table//tr[last()-1] =>Select the any child as TR (Here third TR <b>'email/pass textbox'</b>) from Table tag</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>3. position()</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
It is used to select elements based on > (grater than ) or < (less than ) certain index value.</div>
<div style="text-align: left;">
lets if a table <Table> tag has three <TR> child then if you want to select first Two <TR> then we can use //table/tr[position() < 3] .</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Example:</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//table//tr[position()<3] => Select only first two TR node/tag under the table tag.</div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
//select[@id='month']/option[position()>5] => Select all other option whose position is greater than 5. Here text month=1, jan=2, feb=3, mar=4, APR=5 & so on . so here it will return all other option from May to Dec.from Month Drop Down List.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[@id='day']/option[position()>30] => It will return day option 30 & 31. <b>as 0 indicates 'Day'</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>4. node[@attribute]:</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
It will select the tag/node that have an attribute name as @attribute.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b>Example:</b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//input[@id] => Select all input tag/node those have attribute <b>'Id'</b>.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<input type="email" class="inputtext login_form_input_box" name="email" <b>i<span style="color: blue;">d="email"</span></b> data-testid="royal_email"> <b> </b></div>
<div style="text-align: left;">
<b><br /></b></div>
<div style="text-align: left;">
//select[@title] => Select 'select' tag/node those have <b>'title'</b> as a attribute.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//*[@title] => Select any tag/node those have <b>'title'</b> as a attibute.<b></b></div>
<div style="text-align: left;">
<b><br /></b></div>
<div style="text-align: left;">
<b><br /></b></div>
<div style="text-align: left;">
<br />
<b><b>6. [ attributename > attribute value ]:</b></b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
Select<b> </b>all the nodes/tags that have an attribute value is greate than or less than specified attribute value.</div>
<div style="text-align: left;">
<b><b> </b></b></div>
<div style="text-align: left;">
<b><b>Example:</b></b></div>
<div style="text-align: left;">
<b><b><br /></b></b></div>
<div style="text-align: left;">
//select[@id='year']/option[text()>2000] => Select all the option from 'year' drop down list those are having text value greater than 2000. So the result is option from 2001 to option 2019.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[@id='day']/option[text()<5] => Select all the option those are having text value which is less than 5. So here the result conatins option value=1 to option value =4. <br />
<b><b></b></b></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br />
<br />
<h3 style="text-align: left;">
Operators in XPath:</h3>
<div style="text-align: left;">
<b>1. and:</b></div>
<ul style="text-align: left;">
<li> Both the condition should be true to find the element.</li>
<li>It is case sensitive (attribute values should be in same case).</li>
</ul>
<ul style="text-align: left;">
<li>If you want to find an element based on multiple condition like by considering @id, @name, text(), @type or any attribute then AND Operator is used. </li>
</ul>
<ul style="text-align: left;">
<li>If one of the condition if wrong then it won't identify an element.</li>
</ul>
<div style="text-align: left;">
<b>Example:</b></div>
<div style="text-align: left;">
//input[@id='u_0_n' and @name='firstname'] => Find the firstName element from create an account.</div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
//input[@id='u_0_n' and @name='<b>firstnamee</b>'] => It won't find an element as value of attribute @name=f<b>irstnamee</b> is not matched (expected @name=<b>'firstname'</b> ).</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//select[@id='day' and @name='birthday_day' and @title='Day'] => select the <b>'Birthday Day' </b>drop downlist from create an account form using multiple attribute values with <b>and</b> condition. </div>
</div>
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
another way is-</div>
<div style="text-align: left;">
//input[@id='u_0_n'][@name='firstname'] => Here it will by default consider and. No need to </div>
<div style="text-align: left;">
explicitly specify <b>and </b>over here.<b><b></b></b></div>
<div style="text-align: left;">
<b><b><br /></b></b></div>
<div style="text-align: left;">
<b>//</b><span style="color: red;"><span style="color: black;">select</span>[@id='day']</span><span style="color: #38761d;">[@name='birthday_day']</span><span style="color: blue;">[@title='Day'] </span>=> It will select Birthday Day drop down.<b><b><br /></b></b></div>
<h3 style="text-align: left;">
<b><b> 2. or:</b></b></h3>
<ul style="text-align: left;">
<li>If one of the condition is then it will find an element.</li>
<li>It is case sensitive (attribute values should be in same case).</li>
</ul>
<ul style="text-align: left;">
<li>If
you want to find an element based on multiple condition like by
considering @id, @name, text(), @type or any attribute then <b>OR</b> Operator
is used. </li>
</ul>
<ul style="text-align: left;">
<li>If one of the condition (attribute value is not matched ) is wrong or true(if one of the attribute values matched with DOM values) still it will identify an element. </li>
<li>If all the conditions are wrong (attribute values are not matched in DOM values ) then it won't identify an element. </li>
</ul>
<div style="text-align: left;">
<b>Example:</b></div>
<div style="text-align: left;">
//input[@id='u_0_n' or @name='firstname'] => Find the firstName element from create an account.</div>
<div style="text-align: left;">
<b> </b></div>
<div style="text-align: left;">
//input[@id='u_0_n' or @name='<b>firstnamee</b>'] => It won't find an element as value of attribute @name=f<b>irstnamee</b> is not matched (expected @name=<b>'firstname'</b> ).</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
//input[@id='<b>u_0_nn</b>' or @name='<b>firstnamee</b>']=> If both attribute values are not matched then it will not identify an element. Expected values are //input[@id='<b>u_0_n</b>' or @name='<b>firstname</b>']</div>
<div style="text-align: left;">
</div>
//select[@id='day' or @name='birthday_day' or @title='Day'] => select the <b>'Birthday Day' </b>drop downlist from create an account form using multiple attribute values with <b>and</b> condition. <br />
<h3 style="text-align: left;">
<b><b> </b></b></h3>
<h3 style="text-align: left;">
<b><b>References:</b></b></h3>
<ol style="text-align: left;">
<li>https://www.w3schools.com/xml/xpath_intro.asp</li>
<li>https://www.facebook.com/r.php <b><b><br /></b></b></li>
</ol>
<div style="text-align: left;">
<b><b> </b> </b><br />
<b></b></div>
<b> </b><br />
<span style="color: red;"> </span><br />
<b></b>
<b><b></b></b></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com2tag:blogger.com,1999:blog-8770391591876702071.post-36060135413313844612019-10-14T10:21:00.001-07:002019-10-14T10:30:48.199-07:00CSS Selector selenium<div dir="ltr" style="text-align: left;" trbidi="on">
<b>What is CSS?</b><br />
CSS stands for <span class="st">Cascading Style Sheets. CSS describes how the web elements present/displayed on web page/screen and look and feel of a web page. Formatting of a webpage. </span><br />
<span class="st"> </span> <br />
<b>Why CSS Selector?</b><br />
<b> </b>CSS refers Cascading style sheet describes the look and feel of a website/web application by maintaining standard formatting for web text, buttons, colouring etc...<br />
So, CSS is uniform to all the pages of a web application and same web application is displayed on different browser. so it uniform to all the web browsers unlike XPATH.<br />
<br />
<ul style="text-align: left;">
<li>Handling of XPATH is different with different browser. XPATH engines which handles xpath is different with different browsers.</li>
</ul>
<ul style="text-align: left;">
<li>So CSS has advantages over xpath as web application is uniform with different browsers so same CSS locator's will work on different browsers but it is not the same case with xpath means- xpath calculate on IE browsers may/may not work on chrome or firefox browser.</li>
<li>But Xpath has much more capabilities (like parent, ancestor, self, descendant, preceding-sibling etc..) than css.</li>
</ul>
<b>Different Format of CSS Selectors:</b><br />
<ol style="text-align: left;">
<li><b>BY Id ( # )</b></li>
<li><b>By Class ( . )</b></li>
<li><b> Sibling (following) ( + )</b></li>
<li><b>Immediate Child ( > )</b></li>
<li><b>Any Child (Child, Grandchild etc..) ( SPACE )</b></li>
<li><b>By Attribute</b></li>
<li><b>Starts-With ( ^= )</b></li>
<li><b>Ends-With ( $= )</b></li>
<li><b>Contains ( *= )</b></li>
<li><b>nth-child(index)</b></li>
<li><b>nth-of-type(index) </b></li>
</ol>
<b>Let's see one-by-one:</b><br />
For above css formatters from 1 to 09 we will use facebook.com as reference website / web application where we used to identify/locate control's/web elements by using CSS selectors.<br />
<b><br /></b><br />
<b>1. By Id</b><br />
<b> </b>Here For Id CSS uses <b>"#" </b>as a convention symbol.<br />
<b>e.g.</b><br />
https://www.facebook.com/<br />
<br />
" input<b>#</b>email " =>Here we are identifying <b>email</b> Textbox.<br />
" input<b>#</b>pass " => Here, we are identifying <b>password</b> textbox.<br />
" input<b>#</b>u_0_4 " => Here, we are identifying <b>"Log In" </b>button.<br />
<br />
Here, we are strictly stating we have to identify only input tag which is having mentioned <b>ID.</b><br />
<br />
or we can use without tag name aswell like below examples- <br />
<br />
" <b>#</b>email " => Here we are identifying <b>email</b> Textbox.<br />
" <b>#</b>pass " => Here, we are identifying <b>password</b> textbox.<br />
" <b>#</b>u_0_4 " => Here, we are identifying <b>"Log In" </b>button.<br />
<br />
but in this case it will search any control/tag which is having mentioned <b>id</b>.<br />
<br />
<br />
<br />
<b>2. By Class</b><br />
<b> </b>For class CSS uses " . " (dot) as a convention symbol.<br />
Sometime a control / web elements can have more than one class applied on it (class name seperated by space ). Example- one class specifies height & width another may specifies color and other may specifies formatting. <b>So in such case we have to remove space by adding " ." (dot) in between multiple class names.</b> <br />
<b> </b><b>e.g.</b><br />
https://www.facebook.com/<br />
" <span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">input.inputtext.login_form_input_box " => Here it will return email as well as password </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> Textbox both control/web element.</span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> <b>or</b></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">" <span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">.inputtext.login_form_input_box " => Here it will return email as well as password </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> Textbox both control/web element.</span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b> </span></span></span><br />
<br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> <b>Note:</b> </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> Same class can be applied on multiple controls so here the chance of getting only one control is minimal than getting multiple controls. If we use driver.findElement() then it will retun first control always in search from Top to Bottom in a HTML document.</span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " input.inputtext._58mg._5dba._2ph- " => It will identify FirstName Text box from create </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> account form.</span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> <b>or</b></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " .inputtext._58mg._5dba._2ph- " => It will identify FirstName Text box from create </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> account form.</span></span></span><br />
<br />
<br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> 3. Sibling (following) ( + ):</b></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> To select/identify the control those are <b> siblings</b> to each other. By considering one of the sibling as a reference we can identify other <b>sibling</b> by appending <b>( + ).</b></span></span></span><br />
<br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> e.g.</b></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b>Here we have to identify Text box like (First Name, mobileNumber, New Password, Birthday)<b> </b><br /><b></b></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b></span></span></span><br />
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b>" div#reg_form_box>div+div " => It will identify Mobile Number or email address </span></span></span></li>
</ul>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> textbox (div)</span></span></span><br />
<div>
<br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> Here div# </span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">reg_form_box indicate the <b>create account</b> division</span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b> </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> div#reg_form_box>div indicates FirstName & Last Name complete row (division) by </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> considering this div as reference element we will identify other </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> sibling elements like- MobileNumber, New Password and Birthday </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> etc..</span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span></span></span></span>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span><br />
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " div#reg_form_box>div+div+div#u_0_10 " => Identify <b>"Gender" </b>Division. </span></span></span></span></span></span></span></span></span></li>
</ul>
</div>
<div>
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " div#reg_form_box>div+div#password_field " => Identify <b>"New Password" </b>Division. </span></span></span></span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " div#reg_form_box>div+div#birthday_wrapper " => Identify <b>"Birthday" </b>Division.</span></span></span></span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " div#reg_form_box>div+div#u_0_14 " => Identify <b>"Terms, Data Policy" </b>Text. </span></span></span></span></span></span></span></span></span></li>
</ul>
</div>
<div>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span></span></span></span>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span></span></span></span>
<br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>4. Immediate Child ( > )</b></span></span></span></span></span></span><br />
<br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b>Identify an immediate child of any parent control / element. CSS selector uses convention <b>( > )</b>.</span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span></span></span></span>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> <b>e.g.</b></span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b>Lets we want to identify login table (Top most login form)</span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b></span></span></span></span></span></span><br />
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b>" table>tbody>tr " => Get the table row indicating <b>Email or Phone & Password</b> TextBox label</span></span></span></span></span></span></li>
</ul>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span></span></span></span>
<br />
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " form#login_form>table " => Identify table tag which is the child of login form.</span></span></span></span></span></span></li>
</ul>
</div>
<div>
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">" table>tbody>tr>td>input#email " => Locate <b>email </b>Text Box</span></span></span></span></span></span></li>
</ul>
</div>
<div>
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">" table>tbody>tr>td>input#pass " => Locate <b>passord</b> Text Box. </span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /></span></span></span></span></span></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">" select#day>option " => Locate/get first option from <b>"day" </b>drop down list.</span></span></span></span></span></span></li>
</ul>
</div>
<div>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"></span></span></span></span></span></span><br />
<br />
<br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>5. </b></span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b><b>Any Child (Child, Grandchild etc..) </b></b></span></span></span></span></span></span>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> In CSS Selector (SPANCE) is used to idenify child, any child or grand child of a given </span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> element / control / tag. In this we will consider ant tag as a parent or reference control and we will search any child / grand child respective to that element or reference control/tag/element.</span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><br /><b></b></span></span></span></span></span></span>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> <b>e.g.</b></span></span></span></span></span></span><br />
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b></span></span></span></span></span></span><br />
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> </b> " table input#email " => Identify <b>email or phone</b> text box</span></span></span></span></span></span></li>
</ul>
</div>
<div>
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " table input#pass " => Locate <b>password </b>text box. </span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"></span></span></span></span></span></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " div#reg_form_box input#u_0_m " => Identify <b>First Name</b> from create new account form</span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"></span></span></span></span></span></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " </span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">div#reg_form_box input#</span></span></span></span></span></span>u_0_s " => Identify <b>mobile number</b> from create new account </span></span></span></span></span></span></li>
</ul>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span><ul style="text-align: left;">
</ul>
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>6. By Attribute</b></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> Like wise XPATH CSS Selector can also identify control with the help of attribute. The only </span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> difference is xpath uses ( <b>@ </b>) as a prefix to attribute name.</span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> <b> </b></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b> e.g.</b></span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " input[name = 'email' ] " => Identify <b>Email or Phone </b>Textbox.</span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"></span></span></span></span></span></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " input[id = 'pass' ] " </span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> => Identify <b>Password </b>Textbox.</span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " input[id = 'u_0_n'] " => Identify <b>First Name </b>Text Box from Create new Account</span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " input[id='email'][type='email] " => </span></span></span></span></span></span></span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Identify <b>Email or Phone </b>Textbox.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><ul style="text-align: left;">
</ul>
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>7.</b> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><b>Starts-With ( ^= )</b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<b> </b>In CSS Selector starts-with denoted as ( <b>^=</b> ) like wise XPATH has start-with() method.</div>
<div style="text-align: left;">
It is used to identify any control whose any property/attribute value starts with some fixed character/number. Starting few characters should be fixed ending character can be vary. </div>
<div style="text-align: left;">
<b>It is used to handle dynamic control on a page.</b></div>
<div style="text-align: left;">
<br />
<b></b></div>
<div style="text-align: left;">
<b>e.g.</b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><b> </b>" input[id^='ema'] " => <span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Identify </span></span></span></span></span></span><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>Email or Phone </b></span></span></span></span></span></span></b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Textbox</span></span></span></span></span></span><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">.</span></span></span></span></span></span></b></li>
</ul>
<b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> OR</span></span></span></span></span></span></b></div>
<div style="text-align: left;">
<b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"></span></span></span></span></span></span></b><br />
<ul style="text-align: left;">
<li><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">" input[id^='ema'][type='email'] " => </span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Identify</span></span></span></span></span></span></span></span></span></span></span></span><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>Email or Phone </b></span></span></span></span></span></span></b></span></span></span></span></span></span></b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Textbox</span></span></span></span></span></span></span></span></span></span></span></span><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">.</span></span></span></span></span></span></b></span></span></span></span></span></span></b></li>
</ul>
<ul style="text-align: left;">
<li><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></b></span></span></span></span></span></span></b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">" input[name^= 'first'] " => </span></span></span></span></span></span></span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Identify </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>First Name </b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></b></span></span></span></span></span></span></b><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Text Box from Create new Account.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " button[name ^= 'web'] " => Identify <b>Sign Up </b>buttoon from Create new Account.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> <b>OR</b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> " </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">[name^= 'web'] => </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace">Identify <b>Sign Up </b>buttoon from Create new Account.</span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></li>
</ul>
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"> </span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><ul style="text-align: left;">
</ul>
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b>8.</b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b><b> Ends-With ( $= )</b></b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><span class="message-body-wrapper"><span class="message-flex-body"><span class="message-body devtools-monospace"><b><b> </b></b></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span></span>In CSS Selector ends-with denoted as ( <b>$=</b> ) like wise XPATH has ends-with() method.<br />
<div style="text-align: left;">
It
is used to identify any control whose any property/attribute value ends with some fixed character/number. Ending few characters should
be fixed buts starting or mid characters can be vary. </div>
<div style="text-align: left;">
<b>It is used to handle dynamic control on a page.</b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<b> e.g.</b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li> "input[name $= 'passwd__']" => Identify <b>New Password </b>from create new account form.</li>
</ul>
<ul style="text-align: left;">
<li> "input[name $= 'email__']" => Identify <b>Mobile Number or Email address.</b></li>
</ul>
<ul style="text-align: left;">
<li><b> </b>"select[name $= '_day']" => <b> </b>Identify <b>Birthday Day </b>from create new account.</li>
</ul>
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li> "button[name $= 'submit'] => Identify <b>Sign Up </b>button from create new account.</li>
</ul>
</div>
<div style="text-align: left;">
<b><br /></b></div>
<div style="text-align: left;">
<b><br /></b></div>
<div style="text-align: left;">
<b>9. </b><b><b>Contains ( *= )</b></b></div>
<div style="text-align: left;">
<b><b> </b></b></div>
<div style="text-align: left;">
<b><b> </b></b><b><b>In CSS Selector contains denoted as ( <b>$=</b> ) like wise XPATH has contains() method.</b></b><br />
<div style="text-align: left;">
It
is used to identify any control whose any property/attribute value contains some fixed character/number. Starting or Ending few characters should
be vary buts middle few characters can be fixed. </div>
<div style="text-align: left;">
<b>It is used to handle dynamic control on a page.</b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<b> e.g.</b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<div style="text-align: left;">
<ul style="text-align: left;">
<li> "input[name *= 'passwd']" => Identify <b>New Password </b>from create new account form.</li>
</ul>
<ul style="text-align: left;">
<li> "input[name $= '_email_']" => Identify <b>Mobile Number or Email address.</b></li>
</ul>
<ul style="text-align: left;">
<li><b> </b>"select[name $= 'day_']" => <b> </b>Identify <b>Birthday Day </b>from create new account.</li>
</ul>
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li> "button[name $= 'sub'] => Identify <b>Sign Up </b>button from create new account.</li>
</ul>
Now so far, for above CSS selector we have used https://www.facebook.com. to identify the control.<br />
<br />
<br />
<br />
<b>10. nth-child(index)</b><br />
<br />
nth-child(index) method is used to select/get specified index child element. But the specified index element should be same as mentioned before colon <b>( : ). </b><br />
<br />
<b>e.g.</b><br />
<b> </b><br />
<span style="color: blue;"><b>Scenario-1:</b></span><br />
<br />
<b><ul></b><br />
<b> < li > Avinash-1 < /li ></b><br />
<b> < li > </b><b>Avinash-2 < /li ></b><br />
<b> < li > </b><b><b>Avinash-1 < /li ></b></b><br />
<b><b>< / ul > </b></b><br />
<b> ul>li:nth-child(2) => </b>Here we want to select 2-nd <b>li</b> element which is the child of <b>ul.</b> <b> </b><br />
<b> </b><br />
<br />
<b> <span style="color: blue;">Scenario-2:</span></b><br />
<br />
<b><ul></b><br />
<b> < li > Avinash-1 < /li ></b><br />
<b> <input type="text" id=i1 /> </b><br />
<b> < li > </b><b>Avinash-2 < /li ></b><br />
<b> <input type="text" id=i2 /> </b><br />
<b> < li > </b><b><b>Avinash-1 < /li ></b></b><br />
<b><b>< / ul > </b></b><br />
<b> ul>li:nth-child(2) => </b>Here we want to select 2-nd <b>li</b> element which is the child of <b>ul.</b> But here child of UL with index=2 is <b><input> tag </b>so here input tag is not same type of li type both are different tag. So here you will get exception as-<b><span style="color: blue;"> </span></b>(If specified index element type is not same as mentioned before the <b>( : ) colon </b>then you will get) <span style="color: red;"><b>org.openqa.selenium.NoSuchElementException</b></span>.<br />
<br />
<span style="color: red;"><b>Note:</b></span><br />
<span style="color: red;"><b> <i> It means nth-child(index) method check the type of specified index with mentioned in locator befor the ( : ) colon.</i></b></span><br />
<br />
<br />
<b>11. </b><b>nth-of-type(index) </b><br />
<b><br /></b>
<b> nth-of-type(index) </b>is also ued to select the child of specified index. But nth-of-type removes the other tags(child) other than specified tag (child) in selector that is to be select and make list of the specified child tags. Among the list of child elements it will get the specified index element. If the specified index is there then it will return the specified child elements.<br />
If the specified index is not there (out of index ) then it will through exception as- <span style="color: red;">org.openqa.selenium.NoSuchElementException</span> <b></b><br />
<b><br /></b>
<b> e.g.</b><br />
<b> </b><br />
<b> <html><br /> <body><br /> <ul><br /> <li> Avinash-1 </li> <br /> <input type="text" id=i1 /><br /><br /> <li> Avinash-2 </li><br /> <input type="text" id=i2 /><br /><br /> <li> Avinash-3 </li><br /> <input type="text" id=i3 /><br /> <br /> <input type="text" id=i4 /><br /> </ul><br /> </body><br /></html></b><br />
<b><br /></b>
if we want select second li elements then methods looks like as -<br />
<b><br /></b>
<br />
<ul style="text-align: left;">
<li><b> "ul>li:nth-of-type(2)" => </b>It will removes the input tags from above example and make the list of remaining <b>li </b>tags and from that list it will get the element with specified index if it is there . In this case it will return -</li>
</ul>
<b><li> Avinash-2 </li></b></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><b><b> "ul>li:nth-of-type(4)" => </b></b>Here after removal of input tags (those are other than <b>li </b>tags ) it will make the list as-</li>
</ul>
<b><li> Avinash-1 </li> <br /> <li> Avinash-2 </li><br /> <li> Avinash-3 </li> </b></div>
<div style="text-align: left;">
<b> </b>from this list it will check the specified index is there or not. If the specified index is not present then it will return- <b><span style="color: red;"> </span></b></div>
<div style="text-align: left;">
<b><span style="color: red;"> org.openqa.selenium.NoSuchElementException</span> </b><br />
<br />
<br />
<b><u>References:</u></b><br />
<br />
<ul style="text-align: left;">
<li><b><a href="https://www.seleniumhq.org/" target="_blank">https://www.seleniumhq.org/</a> </b></li>
</ul>
<ul style="text-align: left;">
<li><b><a href="https://www.facebook.com/" target="_blank">https://www.facebook.com/</a> </b></li>
</ul>
<b> </b> </div>
</div>
<b><b> </b></b></div>
</div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com3tag:blogger.com,1999:blog-8770391591876702071.post-4380930839854141822018-12-12T06:01:00.004-08:002018-12-12T06:01:56.943-08:00Reading csv files and comparing it<div dir="ltr" style="text-align: left;" trbidi="on">
package selenium;<br />
<br />
import java.util.ArrayList;<br />
import java.util.HashMap;<br />
<br />
public class CSVComparisonMain {<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private static ArrayList<String> keys_Source=null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private static ArrayList<String> keys_Destination = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private static HashMap<String, ArrayList> header_Values_Source;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>private static HashMap<String, ArrayList> header_Values_Destination;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public static void main(String[] args) throws Exception<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>CSVFIleReader source_Obj = new CSVFIleReader("C:\\Avinash\\source.csv", "EVENT_CD");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>source_Obj.readCSVFIle();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>keys_Source = source_Obj.keys;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>header_Values_Source = source_Obj.header_Values;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>CSVFIleReader destination_Obj = new CSVFIleReader("C:\\Avinash\\Destination.csv", "EVENT_CD");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>destination_Obj.readCSVFIle();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>keys_Destination = destination_Obj.keys;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>header_Values_Destination = destination_Obj.header_Values;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println("Comparison Starts.............!!!");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (String key : keys_Source) {<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(header_Values_Destination.containsKey(key))<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ArrayList source_Values = header_Values_Source.get(key);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ArrayList destination_Values = header_Values_Destination.get(key);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (Object value : source_Values)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(!destination_Values.contains(value))<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>throw new Exception("Source file Value: "+value+" is not matched in target file value: "+value);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>throw new Exception ("Exception occured while comparing .csv file.......Key: "+ key +" not found in target file");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
}<br />
<br />
<br />
package selenium;<br />
<br />
import java.io.BufferedReader;<br />
import java.io.FileReader;<br />
import java.util.ArrayList;<br />
import java.util.HashMap;<br />
import java.util.HashSet;<br />
import java.util.Iterator;<br />
import java.util.Map.Entry;<br />
import java.util.Set;<br />
<br />
public class CSVFIleReader<br />
{<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>BufferedReader csvReader = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>String filePath = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>String key = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public String delimiter = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>int keyIndex = -1;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>HashMap<String, ArrayList> header_Values = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ArrayList<String> keys =null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ArrayList<String> values = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public CSVFIleReader(String filePath , String key)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>this.filePath = filePath;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>this.key = key;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>header_Values = new HashMap<>();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>keys = new ArrayList<>();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>values = new ArrayList<>();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void readCSVFIle()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>String line = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>int header = 0;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>try<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>csvReader = new BufferedReader(new FileReader(filePath));<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>while((line=csvReader.readLine()) != null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>String delimit = getDelimiter(line);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println(line);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(delimit != null)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>++header;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>generateKeyValuePair(line,header);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>printCSVFile();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>csvReader.close();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>csvReader = null;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>catch(Exception e)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void generateKeyValuePair(String line, int header)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ArrayList<String> values = new ArrayList<>();<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>try<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(delimiter.equalsIgnoreCase("pipe") || delimiter.equalsIgnoreCase("comma"))<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>String[] words = line.split("\\|");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(words.length > 1)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (String value : words)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>values.add(value);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(words.length <= 1)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>words = line.split("\\,");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(words.length > 1 )<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (String value : words)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>values.add(value);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>throw new Exception("Exception occured while parsing .csv file. Delilmiter is not valid");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>throw new Exception("Exception occured while parsing .csv file. Delilmiter is not valid");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(header == 1) //It Means first line is header<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(values.contains(key))<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>keyIndex = values.indexOf(key);<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>keys.add(values.get(keyIndex));<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>header_Values.put(values.get(keyIndex).toString(), values);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>catch(Exception e)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println(e.getMessage());<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.exit(0);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public String getDelimiter(String line)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>String words[] = line.split("//|");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(words.length>0)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>delimiter = "pipe";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>words = line.split("//,");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if(words.length > 0)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>delimiter = "comma";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>return delimiter;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public void printCSVFile()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Set<Entry<String, ArrayList>> entrySet = header_Values.entrySet();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (Entry<String, ArrayList> entry : entrySet)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.print(entry.getKey() );<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>ArrayList values = entry.getValue();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for (Object value : values) {<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.print(" "+value.toString());<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.out.println();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>public static void main(String[] args)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>{<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>CSVFIleReader obj = new CSVFIleReader("C:\\Avinash\\Temp.csv", "EVENT_CD");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>obj.readCSVFIle();<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>}<br />
<br />
}<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br /></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com0tag:blogger.com,1999:blog-8770391591876702071.post-87427145645412335052018-08-11T10:29:00.002-07:002018-08-11T10:29:53.134-07:00Handling multiple windows in selenium<div dir="ltr" style="text-align: left;" trbidi="on">
<b>Handling Window Pop Up In Selenium: </b><br />
<b><br /></b>
There may be a situation while doing automation where we need to handle multiple window popup or where we need to go to appropriate window among multiple windows at run time. Selenium code /automation get focused on default/parent window.<br />
E.g If you navigate or go to Naukri.com url then you will get multiple window pop up only when if you haven't disable pop up option.<br />
<br />
Here, How do we know that it is a window popup or java script pop up or Jquery/Normal pop up.<br />
<br />
<b>Window Pop up:</b><br />
<b><br /></b>
Window pop up has minimize, maximize and close button like any normal browser has.<br />
<span style="color: blue;">driver.switchTo().window("windowName);</span><br />
<span style="color: blue;"> driver.switchTo().window();</span><br />
<br />
<span style="color: magenta;">H</span><span style="color: magenta;">ere driver referes to webDriver object -</span><br />
<span style="color: magenta;"><br /></span>
<span style="color: magenta;"> WebDriver driver = new ChromeDriver();</span><br />
<span style="color: magenta;"><br /></span>
<b>Java Script Pop Up: </b><br />
<b><br /></b>
<b> </b>Java script pop up doesn't have minimize or maximize button/option also focus is only on java script pop up page. you can't ignore the java script popup but window pop up you can ignore it and perform operation on any other windows.<br />
<br />
<b>Ways to Handle Window Pop Up in Selenium:</b><br />
<b> </b><br />
Selenium webdriver assign unique id (alpha numeric ) to every window to identify uniquely. The alpha numeric id (unique id) is called <b>"Window Handle" </b>in selenium.<br />
<br />
<b>How to get Window Handle:</b><br />
<br />
<span style="color: blue;">String handle = driver.getWindowHandle();</span><br />
<br />
If there are multiple window gets opened when you click on any link,button etc... then to get <b>"window Handle"</b> of each window -<br />
<br />
<span style="color: blue;"> Set<String> windowHandles = driver.getWindowHandles();</span><br />
<br />
<b>"getWindowHandles()" : </b>method return window handle (unique id for each opened window) so that the return type is set. Because set will not contain duplicate elements so here <b>getWindowHandles </b>return unique id/window handles for each winodw and stored in <b>Set.</b><br />
<br />
<b>How to switch to correct / appropriate window:</b><br />
<b><br /></b>
Basically there are two ways to switch to appropriate window.<br />
<br />
<ol style="text-align: left;">
<li><b>By using windowName</b></li>
</ol>
<span style="color: blue;">driver.switchTo().window( "windowName" );</span><br />
<ol style="text-align: left;">
</ol>
<b> or</b><br />
<b> </b><br />
<b> 2. To get current/parent/default window handle:</b><br />
<br />
<span style="color: blue;"> String handle = driver.getWindowHandle();</span><br />
<span style="color: blue;"> driver.switchTo().window( </span><span style="color: blue;">handle </span><span style="color: blue;"> );</span><br />
<span style="color: blue;"><br /></span>
<b> or</b><br />
<br />
<span style="color: blue;">Set < String > windowHandles = driver.getWindowHandles();</span><br />
<span style="color: blue;"> for(String handle : windowHandles )</span><br />
<span style="color: blue;"> {</span><br />
<span style="color: blue;"> driver.swicthTo().window( handle ); </span><br />
<span style="color: blue;"> }</span><br />
<br />
<br />
<b>Example:</b><br />
<b><br /></b>
<br />
<script src="https://gist.github.com/pandeaavinash/4ef40c61061f0dcba0e2f5f30c8d85be.js"></script><br />
<br />
<br /></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com0tag:blogger.com,1999:blog-8770391591876702071.post-28248649850857642192018-06-24T04:19:00.001-07:002018-06-24T04:19:50.235-07:00Spinner To handle in Selenium<html>
<head>
<head>
<style>
.loading {
position: fixed;
top: 0; right: 0;
bottom: 0; left: 0;
background: #fff;
}
.loader {
left: 50%;
margin-left: -4em;
font-size: 10px;
border: .8em solid rgba(218, 219, 223, 1);
border-left: .8em solid rgba(58, 166, 165, 1);
animation: spin 1.1s infinite linear;
}
.loader, .loader:after {
border-radius: 50%;
width: 8em;
height: 8em;
display: block;
position: absolute;
top: 50%;
margin-top: -4.05em;
}
@keyframes spin {
0% {
transform: rotate(360deg);
}
100% {
transform: rotate(0deg);
}
}
table, th, td {
border: 1px solid black;
}
table.a {
visibility: hidden;
}
</style>
</head>
<body>
<input type = "button" id="showspinner" value = "Show Spinner" onClick="show()"><br><br>
<div id="myDiv" class="loader" style="display:block"> </div>
<input type = "button" value = "Hide Spinner" onClick="hide()"><br><br>
<br><br><br>
<p id="demo"></p>
<br><br><br>
<table align="center" class="a" style="width:100%" id="table">
<tr>
<th align="center" >Firstname</th>
<th align="center" >Lastname</th>
<th align="center" >Age</th>
<th align="center" >Select</th>
</tr>
<tr>
<td align="center" >Jill</td>
<td align="center" >Smith</td>
<td align="center" >50</td>
<td align="center" ><input type="checkbox"></td>
</tr>
<tr>
<td align="center" >Eve</td>
<td align="center" >Jackson</td>
<td align="center" >94</td>
<td align="center" ><input type="checkbox"></td>
</tr>
<tr>
<td align="center" >John</td>
<td align="center" >Doe</td>
<td align="center" >80</td>
<td align="center" ><input type="checkbox"></td>
</tr>
</table>
<script type = "text/javascript">
function show()
{
document.getElementById("table").style.visibility = "hidden";
document.getElementById("myDiv").style.display="block";
setTimeout(function(){
document.getElementById("myDiv").style.display="none";
}, 5000);
setTimeout(function() {
myFunction();
}, 5000);
}
function hide() {
document.getElementById("myDiv").style.display="none";
document.getElementById("table").style.visibility="hidden";
}
function myFunction() {
document.getElementById("table").style.visibility = "visible";
}
</script>
</body>
</html><div dir="ltr" style="text-align: left;" trbidi="on">
<br /></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com1tag:blogger.com,1999:blog-8770391591876702071.post-58127643966474366302018-06-24T03:58:00.000-07:002018-06-24T05:13:15.132-07:00Handling Spinner in Selenium<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
Handling Spinner In Selenium:
</h3>
<div>
To handle Spinner in selenium we have to use Synchronization concept with the help of wait.</div>
<div>
It is always best to use <b>Explicit Wait </b> on each control. so we have been using <b>Explicit Wait </b>in our below example.</div>
<div>
<br /></div>
<div>
We are handling Spinner from <span style="color: blue;"><a href="http://avinashpandeblogsonseleniumautomation.blogspot.com/2018/06/spinner-to-handle-in-selenium.html" target="_blank">Spinner Link</a> </span> this link. Click on it.</div>
<div>
<br /></div>
<div>
Basically above link contains two buttons-</div>
<div>
<b>1- Show Spinner</b></div>
<div>
<b>2- Hide Spinner</b></div>
<div>
<br /></div>
<div>
<b>Show Spinner: </b>When we click "Show Spinner" button then spinner is moving with 5-second timeout once 5-Second elapsed data will be loaded in tabular format.</div>
<div>
<br /></div>
<div>
<b>Hide Spinner: </b>When we click on "Hide Spinner" button It will hide the Spinner as well as tabular data (if tabular data is present/already loaded on page)</div>
<div>
<br /></div>
<div>
<i><span style="color: blue; font-family: "georgia" , "times new roman" , serif;">Intention of having such scenario/example is correlating with real time scenario- where when user click on any button then data is fetching from database in mean time spinner is running on page and block the page activity once the data is ready spinner will disappear from screen.</span></i></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<b>Explicit Wait:</b></div>
<div>
<ol style="text-align: left;">
<li><b><span style="color: blue;">WebdriverWait</span></b></li>
<li><b><span style="color: blue;">FluentWait</span></b></li>
</ol>
In below example we have used fluent wait with <b>Function </b>which is parameter to <b>until </b>function.</div>
<div>
In example we have passed <b>Webdriver </b>object and <b>By </b>class object which is the locator path to <b>spinner </b>to function - <b><span class="pl-en" style="background-color: white; box-sizing: border-box; color: #6f42c1; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">waitTillSpinnerDisable</span><span style="background-color: white; color: #24292e; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">(</span><span class="pl-smi" style="background-color: white; box-sizing: border-box; color: #24292e; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">WebDriver</span><span style="background-color: white; color: #24292e; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;"> </span><span class="pl-v" style="background-color: white; box-sizing: border-box; color: #e36209; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">driver</span><span style="background-color: white; color: #24292e; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">, </span><span class="pl-smi" style="background-color: white; box-sizing: border-box; color: #24292e; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">By</span><span style="background-color: white; color: #24292e; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;"> </span><span class="pl-v" style="background-color: white; box-sizing: border-box; color: #e36209; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">by</span><span style="background-color: white; color: #24292e; font-family: , "consolas" , "liberation mono" , "menlo" , "courier" , monospace; font-size: 12px; white-space: pre;">)</span></b></div>
<div>
<b><br /></b></div>
<div>
<b>apply(): </b>We have override apply method which will return either true or false. In example it will return <b>TRUE </b> in case of spinner is disappear (i.e. style.display="none") else it will return <b>FALSE </b>in case of timeout or style.display="block".</div>
<div>
<br /></div>
<div>
Once the Spinner is disappear it will load the data in tabular format and we have to parse the table where we need to select check on the basis of if <b>Name & Surname</b> gets matched with tabular data where we passed <b>Name & Surname </b>at execution time.</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<b>Execution Steps:</b></div>
<div>
<ol style="text-align: left;">
<li>Load the page</li>
<li>Click on Show Spinner button</li>
<li>Pass the driver object and locator for Spinner to waitTillSpinnerDisappear method</li>
<li>Check the method return type if above method waitTillSpinnerDisappear return true then</li>
<li>Parse the table with condition Name & Surname gets matched if match then select respective check box.</li>
</ol>
</div>
<div>
<b>Download:</b></div>
<div>
<b><br /></b></div>
<div>
Download Spinner.html file form below link :- </div>
<div>
<br /></div>
<div>
<a href="https://drive.google.com/open?id=1BW3NyNDAneEilH5lptHbzCQaaKUhl361" target="_blank"><b><span style="color: blue;">https://drive.google.com/open?id=1BW3NyNDAneEilH5lptHbzCQaaKUhl361</span></b></a></div>
<div>
<br /></div>
<div>
or </div>
<div>
<br /></div>
<div>
Refer to page- </div>
<div>
<br /></div>
<div>
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.com/2018/06/spinner-to-handle-in-selenium.html" target="_blank"><b><span style="color: blue;">http://avinashpandeblogsonseleniumautomation.blogspot.com/2018/06/spinner-to-handle-in-selenium.html</span></b></a></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<b>Java Code:</b></div>
<div>
<b><br /></b></div>
<div>
<b><br /></b></div>
<div>
</div>
<script src="https://gist.github.com/pandeaavinash/dc4b36897af0ef692da31589bce0d3be.js"></script>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com2tag:blogger.com,1999:blog-8770391591876702071.post-87268993920684632432018-06-17T09:24:00.000-07:002018-06-17T10:37:26.178-07:00Handling Dynamic Web Tables Using Selenium<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<h4 style="background: rgb(255, 255, 255); color: black; text-align: left;">
<b style="color: maroon;">Handling Dynamic Web Tables Using Selenium by using XPATH</b></h4>
<pre style="background: #ffffff; color: black;"> <span style="font-family: "georgia" , "times new roman" , serif;">In below example we have consider Application Under Test from url as</span><span style="font-family: "georgia" , "times new roman" , serif;"><span style="font-weight: bold;">- </span><span style="color: blue;"><a href="https://www.redmine.org/issues" target="_blank">https://www.redmine.org/issues </a></span>. </span></pre>
<pre style="background: #ffffff; color: black;"><span style="font-family: "georgia" , "times new roman" , serif;">Where this url/application contains </span><span style="font-family: "georgia" , "times new roman" , serif;">issues reported by users etc.. All the reported issues are in </span></pre>
<pre style="background: #ffffff; color: black;"><span style="font-family: "georgia" , "times new roman" , serif;">tabular format. </span><span style="font-family: "georgia" , "times new roman" , serif;">In below example we have used xpath with multiple condition in a single xpath.</span></pre>
<pre style="background: rgb(255, 255, 255);"><span style="font-family: "georgia" , "times new roman" , serif;">Also we have passed java variable as a argument to xpath at runtime.</span></pre>
<pre style="background: rgb(255, 255, 255);"><span style="font-family: "georgia" , "times new roman" , serif;"> Here, we have to pass <span style="color: blue;">issueId</span> and <span style="color: blue;">status</span> as a argument below code will check <span style="color: blue;">issueId</span> and respective </span></pre>
<pre style="background: rgb(255, 255, 255);"><span style="font-family: "georgia" , "times new roman" , serif;"><span style="color: blue;">status </span>code </span><span style="font-family: "georgia" , "times new roman" , serif;">is matched or not with table data if not it will click on next page and searched </span></pre>
<pre style="background: rgb(255, 255, 255);"><span style="font-family: "georgia" , "times new roman" , serif;">the given condition with table data it will search until it will find at least one of the record. </span></pre>
<pre style="background: rgb(255, 255, 255);"><span style="font-family: "georgia" , "times new roman" , serif;">Once the record found then execution will stop.</span></pre>
<pre style="background: #ffffff; color: black;"><span style="color: maroon; font-weight: bold;">
</span></pre>
<pre style="background: #ffffff; color: black;"><span style="color: maroon; font-weight: bold;">
</span></pre>
<pre style="background: #ffffff; color: black;"><span style="color: maroon; font-family: "georgia" , "times new roman" , serif; font-weight: bold;"><u>Screenshot of the Page:</u></span></pre>
<pre style="background: #ffffff; color: black;"><span style="color: maroon; font-weight: bold;">
</span></pre>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAOOMUHvPsZuYsGEctuD_DZ60qg5Z8K8GEElpVfNcxH8wWr4gPNX_j4ArAswDSKDIcb_BjGT2lVC5Epfl0M53xcmkG7FhzhlJFTukM1ln4fNcIx3KuLsSzrgjOTjVYN5RiALlFU8EVZoM/s1600/Redmine.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="661" data-original-width="1020" height="412" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhAOOMUHvPsZuYsGEctuD_DZ60qg5Z8K8GEElpVfNcxH8wWr4gPNX_j4ArAswDSKDIcb_BjGT2lVC5Epfl0M53xcmkG7FhzhlJFTukM1ln4fNcIx3KuLsSzrgjOTjVYN5RiALlFU8EVZoM/s640/Redmine.PNG" width="640" /></a></div>
<pre style="background: rgb(255, 255, 255); color: black; text-align: left;"><span style="color: maroon; font-weight: bold;">
</span></pre>
<h4 style="background: rgb(255, 255, 255); color: black; text-align: left;">
<span style="color: maroon; font-family: "georgia" , "times new roman" , serif; font-weight: bold;"><u>Java Code:</u></span></h4>
<pre style="background: rgb(255, 255, 255);"><span style="color: maroon; font-weight: bold;">package</span><span style="color: #004a43;"> seleniumCode</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> java</span><span style="color: #808030;">.</span><span style="color: #004a43;">util</span><span style="color: #808030;">.</span><span style="color: #004a43;">List</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> java</span><span style="color: #808030;">.</span><span style="color: #004a43;">util</span><span style="color: #808030;">.</span><span style="color: #004a43;">concurrent</span><span style="color: #808030;">.</span><span style="color: #004a43;">TimeUnit</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">By</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">WebDriver</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">WebElement</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">firefox</span><span style="color: #808030;">.</span><span style="color: #004a43;">FirefoxDriver</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">interactions</span><span style="color: #808030;">.</span><span style="color: #004a43;">Action</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">interactions</span><span style="color: #808030;">.</span><span style="color: #004a43;">Actions</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">support</span><span style="color: #808030;">.</span><span style="color: #004a43;">ui</span><span style="color: #808030;">.</span><span style="color: #004a43;">ExpectedConditions</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">import</span><span style="color: #004a43;"> org</span><span style="color: #808030;">.</span><span style="color: #004a43;">openqa</span><span style="color: #808030;">.</span><span style="color: #004a43;">selenium</span><span style="color: #808030;">.</span><span style="color: #004a43;">support</span><span style="color: #808030;">.</span><span style="color: #004a43;">ui</span><span style="color: #808030;">.</span><span style="color: #004a43;">WebDriverWait</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">public</span> <span style="color: maroon; font-weight: bold;">class</span> WebTable
<span style="color: purple;">{</span>
<span style="color: maroon; font-weight: bold;">public</span> <span style="color: maroon; font-weight: bold;">static</span> <span style="color: #bb7977;">void</span> main<span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">String</span><span style="color: #808030;">[</span><span style="color: #808030;">]</span> args<span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
WebDriver driver <span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">null</span><span style="color: purple;">;</span>
<span style="color: #bb7977; font-weight: bold;">List</span><span style="color: #808030;"><</span>WebElement<span style="color: #808030;">></span> listWebElement <span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">null</span><span style="color: purple;">;</span>
<span style="color: #bb7977;">boolean</span> flag <span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">false</span><span style="color: purple;">;</span>
driver <span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">new</span> FirefoxDriver<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
driver<span style="color: #808030;">.</span>manage<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>window<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>maximize<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
driver<span style="color: #808030;">.</span>get<span style="color: #808030;">(</span><span style="color: #0000e6;">"https://www.redmine.org/issues"</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: #bb7977; font-weight: bold;">String</span> issueId <span style="color: #808030;">=</span> <span style="color: #0000e6;">"28232"</span><span style="color: purple;">;</span>
<span style="color: #bb7977; font-weight: bold;">String</span> status <span style="color: #808030;">=</span> <span style="color: #0000e6;">"New"</span><span style="color: purple;">;</span>
driver<span style="color: #808030;">.</span>manage<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>timeouts<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>implicitlyWait<span style="color: #808030;">(</span><span style="color: #008c00;">10</span><span style="color: #808030;">,</span> TimeUnit<span style="color: #808030;">.</span>SECONDS<span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">do</span>
<span style="color: purple;">{</span>
listWebElement <span style="color: #808030;">=</span> driver<span style="color: #808030;">.</span>findElements<span style="color: #808030;">(</span>By<span style="color: #808030;">.</span>xpath<span style="color: #808030;">(</span><span style="color: #0000e6;">"//table[@class='list issues']
         //tr//a[text()='"</span><span style="color: #808030;">+</span>issueId<span style="color: #808030;">+</span><span style="color: #0000e6;">"']//ancestor::td//following-sibling::
         td[text()='"</span><span style="color: #808030;">+</span>status<span style="color: #808030;">+</span><span style="color: #0000e6;">"']//preceding-sibling::td/input"</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">for</span> <span style="color: #808030;">(</span>WebElement element <span style="color: #808030;">:</span> listWebElement<span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
<span style="color: #bb7977; font-weight: bold;">System</span><span style="color: #808030;">.</span>out<span style="color: #808030;">.</span>println<span style="color: #808030;">(</span>element<span style="color: #808030;">.</span>getAttribute<span style="color: #808030;">(</span><span style="color: #0000e6;">"value"</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
element<span style="color: #808030;">.</span>click<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
flag <span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">true</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">break</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
<span style="color: maroon; font-weight: bold;">if</span><span style="color: #808030;">(</span>flag<span style="color: #808030;">=</span><span style="color: #808030;">=</span><span style="color: maroon; font-weight: bold;">true</span><span style="color: #808030;">)</span>
<span style="color: maroon; font-weight: bold;">break</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">if</span><span style="color: #808030;">(</span>flag <span style="color: #808030;">=</span><span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">false</span> <span style="color: #808030;">|</span><span style="color: #808030;">|</span> listWebElement<span style="color: #808030;">.</span>size<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">=</span><span style="color: #808030;">=</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
<span style="color: dimgrey;">//Page Down</span>
Actions ac <span style="color: #808030;">=</span> <span style="color: maroon; font-weight: bold;">new</span> Actions<span style="color: #808030;">(</span>driver<span style="color: #808030;">)</span><span style="color: purple;">;</span>
ac<span style="color: #808030;">.</span>moveToElement<span style="color: #808030;">(</span>driver<span style="color: #808030;">.</span>findElement<span style="color: #808030;">(</span>By<span style="color: #808030;">.</span>cssSelector<span style="color: #808030;">(</span><span style="color: #0000e6;">"a.atom"</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>build<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>perform<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: maroon; font-weight: bold;">try</span>
<span style="color: purple;">{</span>
<span style="color: #bb7977; font-weight: bold;">Thread</span><span style="color: #808030;">.</span>sleep<span style="color: #808030;">(</span><span style="color: #008c00;">2000</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
<span style="color: maroon; font-weight: bold;">catch</span> <span style="color: #808030;">(</span><span style="color: #bb7977; font-weight: bold;">InterruptedException</span> e<span style="color: #808030;">)</span>
<span style="color: purple;">{</span>
<span style="color: dimgrey;">// </span><span style="background: rgb(128, 128, 0); color: white;">TODO Auto-generated catch block</span>
e<span style="color: #808030;">.</span>printStackTrace<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
driver<span style="color: #808030;">.</span>findElements<span style="color: #808030;">(</span>By<span style="color: #808030;">.</span>cssSelector<span style="color: #808030;">(</span><span style="color: #0000e6;">"a.next"</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>get<span style="color: #808030;">(</span><span style="color: #008c00;">0</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>click<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
<span style="color: purple;">}</span><span style="color: maroon; font-weight: bold;">while</span><span style="color: #808030;">(</span>driver<span style="color: #808030;">.</span>findElements<span style="color: #808030;">(</span>By<span style="color: #808030;">.</span>cssSelector<span style="color: #808030;">(</span><span style="color: #0000e6;">"a.next"</span><span style="color: #808030;">)</span><span style="color: #808030;">)</span><span style="color: #808030;">.</span>size<span style="color: #808030;">(</span><span style="color: #808030;">)</span><span style="color: #808030;">></span><span style="color: #008c00;">0</span> <span style="color: #808030;">|</span><span style="color: #808030;">|</span> flag<span style="color: #808030;">=</span><span style="color: #808030;">=</span><span style="color: maroon; font-weight: bold;">false</span><span style="color: #808030;">)</span><span style="color: purple;">;</span>
<span style="color: purple;">}</span>
<span style="color: purple;">}</span>
<!--Avinash-->
<h3 style="text-align: left;">
<span style="color: #990000; font-family: "georgia" , "times new roman" , serif;"><u>References:</u></span>
<span style="color: magenta;"> <a href="https://www.redmine.org/issues" target="_blank"><span style="font-family: "georgia" , "times new roman" , serif;">https://www.redmine.org/issues</span></a></span></h3>
<h3 style="text-align: left;">
<u><span style="color: #990000; font-family: "georgia" , "times new roman" , serif;">See Also: </span></u></h3>
<div style="color: black; text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank"><span style="font-family: "georgia" , "times new roman" , serif;">1-Download file using Selenium webdriver with C#</span></a><br />
<span style="font-family: "georgia" , "times new roman" , serif;">2-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank">Upload file in Selenium WebDriver in java using Robot Class</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif;">3-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank">Implicit and explicit wait in selenium Webdriver</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif;">4-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank">Upload File Using Selenium WebdDriver in Java using AutoIt</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif;">5-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank">Upload a file using selenium web driver in c#</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif;">6-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank">Upload a file using selenium web driver in c# using AutoIt</a></span><br />
<span style="font-family: "georgia" , "times new roman" , serif;">7-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank">Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</a></span></div>
</pre>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com0tag:blogger.com,1999:blog-8770391591876702071.post-43773035666977694152016-03-13T07:26:00.001-07:002016-03-13T07:26:08.675-07:00Handling web tables in Selenium Webdriver<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
<span style="color: #0b5394;">Handling WebTables:</span></h2>
Handling Web tables is much more complex than any other element or control. Web Table is a collection of Rows and Columns. Information / Data is Stored in Rows and Columns combinations called as Cells.<br />
<br />
<br />
<h3 style="text-align: left;">
<span style="color: #0b5394;">Web Tables:</span></h3>
A HTML Table contains following tags normally (case in-sensitive).<br />
<ul style="text-align: left;">
<li>Table - Which indicates a table.</li>
<li>tbody - Table body which contains TR and TDS / TH</li>
<li>Tr - Table Rows indicates Rows in table.</li>
<li>Td / Th - Table data / Table Header Indicates columns in respective Table rows.</li>
</ul>
<br />
<br />
<h3 style="text-align: left;">
<span style="color: #0b5394;">Steps To Iterate over Table:</span></h3>
<ol style="text-align: left;">
<li>Either find out the first web element (i.e. element1) to table tag or tbody tag by using either tagname, css selector or Xpath locator.</li>
<li>Next by using that previous found element (in our case element1) we can find the number of rows under that table as a list of web element.</li>
<li>Iterate over the list of rows and considering each row one by one we can find the number of columns(Td / Th) under each Table rows.</li>
</ol>
<h2 style="text-align: left;">
<span style="color: #0b5394;">Example:</span></h2>
<h4 style="text-align: left;">
</h4>
<div style="text-align: left;">
We will consider below table example to read each value from it's rows and columns. </div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwB6lAAqlauqJ1xDuzADw0BXjrWEW6q-_TH25Woo2V6KSw0uf5sHArZbaPt4M2tQPIYlMvVZU4DQtGVUDiP2yiaSqTb3PDwu3pWXxtMf9V_gRAOoJDh5mUojxYSPyBGSR31wH_oCvP4LA/s1600/Table.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="262" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgwB6lAAqlauqJ1xDuzADw0BXjrWEW6q-_TH25Woo2V6KSw0uf5sHArZbaPt4M2tQPIYlMvVZU4DQtGVUDiP2yiaSqTb3PDwu3pWXxtMf9V_gRAOoJDh5mUojxYSPyBGSR31wH_oCvP4LA/s640/Table.jpg" width="640" /></a></div>
<h2 style="text-align: left;">
</h2>
<h3 style="text-align: left;">
<span style="color: #0b5394;">HTML Code for Web Table:</span></h3>
<div style="text-align: left;">
<html><br /><Head><br /><title> I Am Title Tag </title><br /></head><br /><body><br /><br /><br /><TABLE BORDER="3" BORDERCOLOR="#C000C0" BGCOLOR="#FFDDFF" WIDTH="500" CELLSPACING="1" CELLPADDING="3"><br /><CAPTION><FONT COLOR="#D000D0" SIZE="4"><B>NUMBERS 1-5 in VARIOUS LANGUAGES</B></FONT></CAPTION><br /><TH WIDTH="5%"></TH><br /><TH WIDTH="19%" BGCOLOR="#FFA0FF"><FONT SIZE="4"><U>English</U></FONT></TH><br /><TH WIDTH="19%" BGCOLOR="#FFA0FF"><FONT SIZE="4"> <U>Español</U></FONT></TH><br /><TH WIDTH="19%" BGCOLOR="#FFA0FF"><FONT SIZE="4"> <U>Français</U></FONT></TH><br /><TH WIDTH="19%" BGCOLOR="#FFA0FF"><FONT SIZE="4"> <U>Italiano</U></FONT></TH><br /><TH WIDTH="19%" BGCOLOR="#FFA0FF"><FONT SIZE="4"> <U>Deutsch</U></FONT></TH><br /><TR ALIGN="CENTER"><br /><TD BGCOLOR="#00FFFF"><FONT SIZE="4">1</FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>one</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>uno</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>un</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>uno</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>eins</B></I></FONT></TD><br /></TR><br /><TR ALIGN="CENTER"><br /><TD BGCOLOR="#00FFFF"><FONT SIZE="4">2</FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>two</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>dos</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>deux</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>due</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>zwei</B></I></FONT></TD><br /></TR><br /><TR ALIGN="CENTER"><br /><TD BGCOLOR="#00FFFF"><FONT SIZE="4">3</FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>three</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>tres</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>trois</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>tre</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>drei</B></I></FONT></TD><br /></TR><br /><TR ALIGN="CENTER"><br /><TD BGCOLOR="#00FFFF"><FONT SIZE="4">4</FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>four</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>cuatro</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>quatre</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>quattro</B></I></FONT></TD><br /><TD><FONT COLOR="#4080FF" SIZE="4"><I><B>vier</B></I></FONT></TD><br /></TR><br /><TR ALIGN="CENTER"><br /><TD BGCOLOR="#00FFFF"><FONT SIZE="4">5</FONT></TD><br /><TD><FONT COLOR="#AADDFF" SIZE="4"><I><B>five</B></I></FONT></TD><br /><TD><FONT COLOR="#AADDFF" SIZE="4"><I><B>cinco</B></I></FONT></TD><br /><TD><FONT COLOR="#AADDFF" SIZE="4"><I><B>cinq</B></I></FONT></TD><br /><TD><FONT COLOR="#AADDFF" SIZE="4"><I><B>cinque</B></I></FONT></TD><br /><TD><FONT COLOR="#AADDFF" SIZE="4"><I><B>fünf</B></I></FONT></TD><br /></TR><br /></TABLE><br /></body><br /></html><br /><br /><br /><br /> </div>
<h3 style="text-align: left;">
<span style="color: #0b5394;">WebDriver Scripts to Handle above table: </span></h3>
<div style="text-align: left;">
<span style="color: #a64d79;">package </span>table;<br /><br /><span style="color: #a64d79;">import </span>java.util.concurrent.TimeUnit;<br /><br /><span style="color: #a64d79;">import </span>org.openqa.selenium.By;<br /><span style="color: #a64d79;">import </span>org.openqa.selenium.WebDriver;<br /><span style="color: #a64d79;">import </span>org.openqa.selenium.WebElement;<br /><span style="color: #a64d79;">import </span>org.openqa.selenium.firefox.FirefoxDriver;<br /><br /><span style="color: #a64d79;">public class </span>HandlingTable <br />{ <br /> <span style="color: #a64d79;">public static </span>void main(String[] args) //avinash<br /> {<br /> WebDriver <span style="color: #a64d79;">driver </span>= new FirefoxDriver();<br /> <span style="color: #a64d79;">driver</span>.manage().timeouts().pageLoadTimeout(1, TimeUnit.<span style="color: blue;">MINUTES</span>);<br /> <span style="color: #a64d79;">driver</span>.manage().timeouts().setScriptTimeout(1, TimeUnit.<span style="color: blue;">MINUTES</span>);<br /> <br /> <span style="color: #a64d79;">driver</span>.get("<span style="color: blue;">G:\\Avinash\\HTML\\Table.html</span>"); <span style="color: #38761d;">// Saved above Html file at this location</span><br /> <br /> WebElement <span style="color: #a64d79;">table </span>= driver.findElement(By.tagName("<span style="color: blue;">table</span>")); <span style="color: #38761d;">// Find Table Tag</span><br /> java.util.List<WebElement> <span style="color: #a64d79;">tr </span>= <span style="color: #a64d79;">table</span>.findElements(By.tagName("<span style="color: blue;">tr</span>")); <span style="color: #38761d;">// Find no. of Rows.</span><br /> <br /> System.out.println("<span style="color: blue;">Size:</span>"+<span style="color: #a64d79;">tr</span>.size()); <span style="color: #38761d;">// No. of Rows in a Table</span><br /> <br /> <br /> for (WebElement <span style="color: #a64d79;">trs </span>: <span style="color: #a64d79;">tr</span>) <br /> {<br /> java.util.List<WebElement> <span style="color: #a64d79;">tds </span>= trs.findElements(By.tagName("<span style="color: blue;">td</span>")); <span style="color: #38761d;">// Find no. of Columns</span><br /> System.out.println("<span style="color: blue;">Size of tds:</span>"+tds.size());<br /> <br /> for (WebElement <span style="color: #a64d79;">td </span>: <span style="color: #a64d79;">tds</span>) <br /> {<br /> System.<span style="color: blue;">out</span>.println(td.getText()); <span style="color: #38761d;">// Read the value froom Each cell.</span><br /> }<br /> System.<span style="color: blue;">out</span>.println("<span style="color: blue;">=======================================</span>");<br /> }<br /><br /> }<br /><br /> }</div>
<br />
<h3 style="text-align: left;">
<span style="color: #0b5394;">OutPut of above scripts:</span></h3>
<h3 style="text-align: left;">
<br /></h3>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRtDDitIHi1zYuFSrTY7Glwz4t1zwwa2V6JGry9QSliur6Qw1EObTXzV2lFiCqioCZNKvbPgeFStHLPUDdbLZ-8-6oQj_qZPhl0enWzrqDfK9_isFzUT-8I7QZhjErps7Ymrtzh4LfPFQ/s1600/Output.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjRtDDitIHi1zYuFSrTY7Glwz4t1zwwa2V6JGry9QSliur6Qw1EObTXzV2lFiCqioCZNKvbPgeFStHLPUDdbLZ-8-6oQj_qZPhl0enWzrqDfK9_isFzUT-8I7QZhjErps7Ymrtzh4LfPFQ/s640/Output.jpg" width="640" /></a></div>
<h3 style="text-align: left;">
<br /></h3>
<h3 style="text-align: left;">
<span style="color: blue;"><a href="https://drive.google.com/open?id=0B60V_NmDzs-HbXdlYWU0dHpYY0U" target="_blank">Download Code from Here</a></span></h3>
<h3 style="text-align: left;">
</h3>
<h3 style="text-align: left;">
</h3>
<h3 style="text-align: left;">
</h3>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com0tag:blogger.com,1999:blog-8770391591876702071.post-46329976011696085412016-03-12T22:54:00.000-08:002016-03-12T23:20:40.408-08:00How to bind selenium javadoc to eclipse<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><b>Javadoc for Selenium in Eclipse:</b></span></span></h2>
<h2 style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><b> </b></span></span></h2>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"> While configuring Selenium in Eclipse(by adding selenium-java-2.52.0.jar in eclipse) whenever we write selenium scripts using java in eclipse we didn't get intellisense from eclipse for Selenium related classes and functions (javadoc comment) but we get the intellisense/javadoc information for java related functions by default.</span></span><br />
</div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><b> </b></span></span></div>
<h3 style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><b>How to get Javadoc comment/information for selenium code in Eclipse:</b></span></span></h3>
<h3 style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><b>Step-1:</b></span></span></h3>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">Open Eclipse => Create new Java Project => Give Project Name => Select Next button => Select Libraries tab => and click on add external jar button => browse to location where <b>"</b></span></span><b><span style="color: #0b5394;"><span style="background-color: white;">selenium-java-2.xx.x.jar"</span></span></b><span style="color: #0b5394;"><span style="background-color: white;"> file is located and select </span></span><b><span style="color: #0b5394;"><span style="background-color: white;">"selenium-java-2.xx.x.jar" and => Select Finish.</span></span></b></div>
<div style="text-align: left;">
<b><span style="color: #0b5394;"><span style="background-color: white;"><br /></span></span></b></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaPwQ2i1Y_kGtfMRsBYARGKVHsQ2SZ9bVvCGEvaR0D1QY8vvR8k8dinJT9APnQbUGfFRkG-trdFlEqtBLpYjweG7YIwDZAYd-hHOhPIiqgnlgCf9d1x4WDT14DIsedmVw0xWI__Vz8kS8/s1600/CreateProject.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="356" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgaPwQ2i1Y_kGtfMRsBYARGKVHsQ2SZ9bVvCGEvaR0D1QY8vvR8k8dinJT9APnQbUGfFRkG-trdFlEqtBLpYjweG7YIwDZAYd-hHOhPIiqgnlgCf9d1x4WDT14DIsedmVw0xWI__Vz8kS8/s640/CreateProject.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgedTqFfjZRqAo_BOJFdjEEZ7i3hZrtDEPTy9nYQnoEjvWvhfOVQOeoLtWrhn9a26k0p_GOV9S01ul3xnVUJnPinuQptQz8oX9GT7_BhBzl-2wqaR0H80Iv9iElPIxz0UzTxPYQgA5pJUg/s1600/Libraries.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgedTqFfjZRqAo_BOJFdjEEZ7i3hZrtDEPTy9nYQnoEjvWvhfOVQOeoLtWrhn9a26k0p_GOV9S01ul3xnVUJnPinuQptQz8oX9GT7_BhBzl-2wqaR0H80Iv9iElPIxz0UzTxPYQgA5pJUg/s640/Libraries.jpg" width="640" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOygwAPT31uMTgM-TyWO853Q5QqsB1vvZ5px238S0-HRYrTDfSOlEsJIGKNw2WLn02I4BkJ0skNoOSATuVKhggZdZdkjwLwEngvg_M6X09uZ-EcOQcpncPawUE97mfU23H51k9pQ2WcE/s1600/Add_Seleniumjar.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOygwAPT31uMTgM-TyWO853Q5QqsB1vvZ5px238S0-HRYrTDfSOlEsJIGKNw2WLn02I4BkJ0skNoOSATuVKhggZdZdkjwLwEngvg_M6X09uZ-EcOQcpncPawUE97mfU23H51k9pQ2WcE/s640/Add_Seleniumjar.jpg" width="640" /></a></div>
<div style="text-align: left;">
<b><span style="color: #0b5394;"><span style="background-color: white;"><br /></span></span></b></div>
<h3 style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">Step-2:</span></span></h3>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">Select recently created project => Right click on it => Select Build Path option => select Configure build path option.</span></span></div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><br /></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx9db4mc8nfBVZN5NpbxHfJkvIV2DlSjAraVHXzTtzl1nj3wWD9pAaN0dHX4qCX7bCgDGpfcFGcMog6Xtla4C1UwUN3NfwvuJfWkYOSD4vFAHsBm_wVvs9Ic0Iwk2ZgKkrMeuxJ3zjlzo/s1600/BuildPath.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx9db4mc8nfBVZN5NpbxHfJkvIV2DlSjAraVHXzTtzl1nj3wWD9pAaN0dHX4qCX7bCgDGpfcFGcMog6Xtla4C1UwUN3NfwvuJfWkYOSD4vFAHsBm_wVvs9Ic0Iwk2ZgKkrMeuxJ3zjlzo/s640/BuildPath.jpg" width="640" /></a></div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><br /></span></span></div>
<h3 style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">Step-3:</span></span></h3>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">Click on <b>Libraries</b> tab and search for<b> </b></span></span><b><span style="color: #0b5394;"><span style="background-color: white;">"selenium-java-2.xx.x.jar".</span></span></b></div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">Expand it.</span></span></div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">select <b>Javadoc Location</b> option under jar file => click on <b>Edit</b> button.</span></span></div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">copy <a href="http://seleniumhq.github.io/selenium/docs/api/java/">http://seleniumhq.github.io/selenium/docs/api/java/</a> this URL and paste in <b>javadoc location path</b> edit box.</span></span></div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;">Press <b>ok</b> button. </span></span><b><span style="color: #0b5394;"><span style="background-color: white;"> </span></span></b></div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOygwAPT31uMTgM-TyWO853Q5QqsB1vvZ5px238S0-HRYrTDfSOlEsJIGKNw2WLn02I4BkJ0skNoOSATuVKhggZdZdkjwLwEngvg_M6X09uZ-EcOQcpncPawUE97mfU23H51k9pQ2WcE/s1600/Add_Seleniumjar.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="430" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiQOygwAPT31uMTgM-TyWO853Q5QqsB1vvZ5px238S0-HRYrTDfSOlEsJIGKNw2WLn02I4BkJ0skNoOSATuVKhggZdZdkjwLwEngvg_M6X09uZ-EcOQcpncPawUE97mfU23H51k9pQ2WcE/s640/Add_Seleniumjar.jpg" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdhnBCwbkLcni5zsY-2xfXwAJmm-6gzdjkXbzKLqx1h1I5THjkrtih2gfpgK0-e2Ah1I_QylVe_kXUha-6zhB_RliCaTSoJqEC0KANHeyswNlNvgOjwMM3GY-jXssXDj5HGPw84yUbsI/s1600/EditjavaDoc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiYdhnBCwbkLcni5zsY-2xfXwAJmm-6gzdjkXbzKLqx1h1I5THjkrtih2gfpgK0-e2Ah1I_QylVe_kXUha-6zhB_RliCaTSoJqEC0KANHeyswNlNvgOjwMM3GY-jXssXDj5HGPw84yUbsI/s640/EditjavaDoc.jpg" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif6rpUXUWUCfX4ZXN649z6piuPLvEXgcrYF7hNe6BK67UPpr9E-McSrtjdDuW068GmDN_zvCNPIKZsPjL37S8fPrS2_0lzPKFrgxD14XqXknY7CVbdSrKJ60ISYPTObyhlFbyKHVMERyc/s1600/SaveJavaDoc.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEif6rpUXUWUCfX4ZXN649z6piuPLvEXgcrYF7hNe6BK67UPpr9E-McSrtjdDuW068GmDN_zvCNPIKZsPjL37S8fPrS2_0lzPKFrgxD14XqXknY7CVbdSrKJ60ISYPTObyhlFbyKHVMERyc/s640/SaveJavaDoc.jpg" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="color: #0b5394;"><span style="background-color: white;"><b>Finally While writing selenium scripts you will get </b></span></span><b><span style="color: #0b5394;"><span style="background-color: white;">intellisense/javadoc information.</span></span></b></div>
<div style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrOUf_lyO-DveOuVCPqI8Hg63I7Xo28wwGBl-e1XgE1faqf7O7T5dS2HjFY4ZXtMaCu-n2KDM7B5uUR0wzR6HxTLmrbldHTfGEYb6HtoF2vW7BkR_VxmGuxCTyaNpvb79_sKJIxe70r-0/s1600/Script.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhrOUf_lyO-DveOuVCPqI8Hg63I7Xo28wwGBl-e1XgE1faqf7O7T5dS2HjFY4ZXtMaCu-n2KDM7B5uUR0wzR6HxTLmrbldHTfGEYb6HtoF2vW7BkR_VxmGuxCTyaNpvb79_sKJIxe70r-0/s640/Script.jpg" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com7tag:blogger.com,1999:blog-8770391591876702071.post-50269053430269240662015-08-12T20:32:00.004-07:002015-09-03T20:02:12.416-07:00Selenium Grid<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAa17LoXZ8WJzj9Adl-PiVAIW7M2pqV_-6y3SXOD5hWBZpXFihErcsdKObTuagsnAPI2XsKtbougf8V7O7es5pq2lqs8koQmETk1nWzd-pn52trFiSl4uIPwHdh_NVxUZZS5A7qy4jqtw/s1600/1.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgAa17LoXZ8WJzj9Adl-PiVAIW7M2pqV_-6y3SXOD5hWBZpXFihErcsdKObTuagsnAPI2XsKtbougf8V7O7es5pq2lqs8koQmETk1nWzd-pn52trFiSl4uIPwHdh_NVxUZZS5A7qy4jqtw/s640/1.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6BsLXjP_zxBFi4WqDiIiFyCN7nDlgL0bT80U_fGROeAGVEVnuzWJswHVu8_4Q0-CyN7xhNTqOFuBMrNaYGxTpDq5mqL_EFD4DTy9X-QWP_QzB_hL2kkBryfMqtX_Fr-OhTKeye3PK8L4/s1600/2.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="461" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6BsLXjP_zxBFi4WqDiIiFyCN7nDlgL0bT80U_fGROeAGVEVnuzWJswHVu8_4Q0-CyN7xhNTqOFuBMrNaYGxTpDq5mqL_EFD4DTy9X-QWP_QzB_hL2kkBryfMqtX_Fr-OhTKeye3PK8L4/s640/2.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigWcj6VzhrwWf3I7sVLnkezxadBzqW5aErXc8ArRGp5cP3uuJQzZUNeK-dy0NoZsxuoLccx7L6Hlkkqo4kSPacVWdHBChoJ_FAMKYQJZ9bL_VmViQJYsB7EjBnrF-gOQigHV_onlTKpRo/s1600/3.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEigWcj6VzhrwWf3I7sVLnkezxadBzqW5aErXc8ArRGp5cP3uuJQzZUNeK-dy0NoZsxuoLccx7L6Hlkkqo4kSPacVWdHBChoJ_FAMKYQJZ9bL_VmViQJYsB7EjBnrF-gOQigHV_onlTKpRo/s640/3.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfq7auFAqtXmxGq9IfVxwTUWejVv2fB-dvXI6Zy_kjQuZGtHzxtSLWRRHkBTcRxywldGa8yiOqVqs2SRhUt2cWCN9BSMmdt5kHb4wtj0aau2jKdznodtyTpJCPe2SjAZ-a8Bora3tu2Hs/s1600/4.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfq7auFAqtXmxGq9IfVxwTUWejVv2fB-dvXI6Zy_kjQuZGtHzxtSLWRRHkBTcRxywldGa8yiOqVqs2SRhUt2cWCN9BSMmdt5kHb4wtj0aau2jKdznodtyTpJCPe2SjAZ-a8Bora3tu2Hs/s640/4.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieh0wNCELrshiP9QUMLN7q0JYWUVNn4SK5R_a1YHKiDOxrtZUtZGm5d4gPWuct3VoiEX3E6yevpMzO4oSZX8qLRMru1wXgpp92Xjr3z8jWX824oh_N06wkRZDTjQwNh0dQaTC0SfiTX7g/s1600/5.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEieh0wNCELrshiP9QUMLN7q0JYWUVNn4SK5R_a1YHKiDOxrtZUtZGm5d4gPWuct3VoiEX3E6yevpMzO4oSZX8qLRMru1wXgpp92Xjr3z8jWX824oh_N06wkRZDTjQwNh0dQaTC0SfiTX7g/s640/5.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ts9J152GupOdnsiMQBWmiwYwt_iVHNsb1htRb4tiduli3d27Fpdb1rAwFuHLgTrzluJzScRafL7I7ogEtd1nNRGwvvpljx8N1J8xXdgJzUOYR_haUWfk4UiARBsLrjXprmTnIARNcKY/s1600/6.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="464" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh0Ts9J152GupOdnsiMQBWmiwYwt_iVHNsb1htRb4tiduli3d27Fpdb1rAwFuHLgTrzluJzScRafL7I7ogEtd1nNRGwvvpljx8N1J8xXdgJzUOYR_haUWfk4UiARBsLrjXprmTnIARNcKY/s640/6.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq4khGzW7VtKqliRy8D7uO4SM4G1PnpFg-huLdQmHdS9YBdanSSfx1aJGNjYpWGuZvKMWWnoiLDpIBX64_OrEbJm0cCIQWTjD_SOAXXILzF0mS_UYvqUPC-fCUxWHYeSHIrqMO6R00MJA/s1600/7.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="460" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhq4khGzW7VtKqliRy8D7uO4SM4G1PnpFg-huLdQmHdS9YBdanSSfx1aJGNjYpWGuZvKMWWnoiLDpIBX64_OrEbJm0cCIQWTjD_SOAXXILzF0mS_UYvqUPC-fCUxWHYeSHIrqMO6R00MJA/s640/7.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSErCZYf6C0MfxoI8Z5f-4bR17kXdK-X4doq5h4_LUHvYjzH1Q_t40BG0_SAUfl6kElc_o2I7UJv9Svx9RuakI0Nd_OeIUKSSYUq8Cb2izCdAfUausK0-2woskyvJCb4XytItUQI_GWQg/s1600/8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="461" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhSErCZYf6C0MfxoI8Z5f-4bR17kXdK-X4doq5h4_LUHvYjzH1Q_t40BG0_SAUfl6kElc_o2I7UJv9Svx9RuakI0Nd_OeIUKSSYUq8Cb2izCdAfUausK0-2woskyvJCb4XytItUQI_GWQg/s640/8.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBzcMjeyGe3e4o0i9KDdhJKaPDGl8yhBnRmAVtbvIFOEo5PyJtUzJkEF3pCbHrB9v32uMMy6nKPVDn-0U-WMpU2NZ1ir-6hfxlqnpULAqgfLYzMxuG4OrUIG35Wsqtmy7Ny04qaIUMkF0/s1600/9.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="462" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiBzcMjeyGe3e4o0i9KDdhJKaPDGl8yhBnRmAVtbvIFOEo5PyJtUzJkEF3pCbHrB9v32uMMy6nKPVDn-0U-WMpU2NZ1ir-6hfxlqnpULAqgfLYzMxuG4OrUIG35Wsqtmy7Ny04qaIUMkF0/s640/9.jpg" width="640" /></a></div>
<br /></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com10tag:blogger.com,1999:blog-8770391591876702071.post-82585721045737253372015-07-19T00:52:00.004-07:002015-09-17T06:53:30.015-07:00Run a Jar File Using Windows Task Scheduler<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
<span style="color: magenta;"><span style="font-weight: normal;"><b>Importance: </b></span></span></h3>
<span style="font-family: Georgia,"Times New Roman",serif;">In Automation Testing, we have to schedule an execution of our Test Script in midnight then such thing is very much important.</span><br />
<br />
<span style="font-family: Georgia,"Times New Roman",serif;">The Automation tester schedule an execution of test script in windows task scheduler in night, when the the time is trigger the execution of script is going to run automatically and store the result in the form of report. so in the next day the automation tester will look up into the report only. Doing this will reduce the execution of Test script in working hours.</span><br />
<br />
<span style="font-family: Georgia,"Times New Roman",serif;">
If you want to schedule an execution of Script/Code in midnight on
every day or in a week without executing that script explicitly. In that
scenario it is very much important.</span><br />
<h4 style="text-align: left;">
<span style="color: #741b47;">Steps to Do:</span></h4>
<ul style="text-align: left;">
<li><span style="font-family: Georgia,"Times New Roman",serif;">Open an Eclipse Select Java project Give any name and add external references under Libraries tab.</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Create any package under <span style="color: blue;">"src"</span> folder.</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Create a single/multiple classes under that package (one class should have main method).</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Write code in class/classes.</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Run the class which having main method at least single time.</span></li>
</ul>
<br />
<h3 style="text-align: left;">
<span style="color: magenta;"><u>Export executable .Jar file </u></span> </h3>
<ul style="text-align: left;">
<li><span style="font-family: Georgia,"Times New Roman",serif;">Select Respective project and right click on it.</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Select Export option from list.</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Select/type Runnable JAR file from select and export destination.</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">click on Next button</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Launch Configuration: select the file in your project which has main method(start point for execution).</span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Click on Browse button and Select Export Destination path where executable Jar will reside & Give name. In My case I Have given name as <span style="color: blue;">Run.jar</span></span></li>
<ul><ul>
<li><span style="font-family: Georgia,"Times New Roman",serif;"> In my case I Will select Export Destination path as: <span style="color: blue;">E:\Avinash</span></span></li>
<li><span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: blue;"><span style="color: black;">Path becomes:</span> E:\Avinash\Run.jar </span></span></li>
</ul>
</ul>
<li><span style="font-family: Georgia,"Times New Roman",serif;">Click on Finish. </span></li>
</ul>
<h3 style="text-align: left;">
<span style="color: magenta;"> </span></h3>
<h3 style="text-align: left;">
<span style="color: magenta;"><u>Important Considerations:</u></span></h3>
<span style="font-family: Georgia,"Times New Roman",serif;">In My case my Java is installed on this path : </span><br />
<span style="font-family: Georgia,"Times New Roman",serif;"> <b><span style="color: magenta;"> JDK:</span> </b><span style="color: blue;">D:\Program Files\Java\jdk1.8.0_31\bin</span></span><br />
<span style="font-family: Georgia,"Times New Roman",serif;"> <b><span style="color: magenta;"> JRE:</span></b> <span style="color: blue;">D:\Program Files\Java\jre1.8.0_51\bin</span></span><br />
<span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: blue;"> </span></span><br />
<span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: blue;"> <span style="color: magenta;"><b> Exceutable jar:</b></span> E:\Avinash\Run.jar </span></span><br />
<br />
<h3 style="text-align: left;">
<span style="color: magenta;"><u>Windows Task Scheduler:</u></span></h3>
<span style="color: blue;">GO to Start menu -> All programs -> Accessories -> System Tolls -> Task Scheduler</span><br />
<span style="color: blue;"><br /></span>
<br />
<h4 style="text-align: left;">
<span style="color: magenta;"><span style="font-family: Georgia,"Times New Roman",serif;">1- Create a Basic Task </span></span></h4>
<span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: blue;"><span style="color: black;">Give name as: </span>RunJarFile</span></span><br />
<br />
<span style="color: blue;"><span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: black;">Description:</span> RunJarFile</span></span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOni893A_v5Dqs7FpDRaqwh1OV2WHEKpCBoT-3RuQ4Rom4eq8IrhrbRLUbEk4QoURzw0Iy_71CLz5nFryX5rX9METO2YiQ7mcPZP4XMumTzCSk_ASr4fyQ_yandLs_d0bDds4sZQPePOA/s1600/CreatebasicTask.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="337" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiOni893A_v5Dqs7FpDRaqwh1OV2WHEKpCBoT-3RuQ4Rom4eq8IrhrbRLUbEk4QoURzw0Iy_71CLz5nFryX5rX9METO2YiQ7mcPZP4XMumTzCSk_ASr4fyQ_yandLs_d0bDds4sZQPePOA/s640/CreatebasicTask.PNG" width="640" /></a></div>
<span style="color: blue;"><br /></span>
<span style="color: blue;"><br /></span>
<br />
<h4 style="text-align: left;">
<span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: magenta;">2- Trigger:</span></span></h4>
<span style="font-family: Georgia,"Times New Roman",serif;">Select radio button as <span style="color: blue;">Run One Time</span>.</span><br />
<span style="font-family: Georgia,"Times New Roman",serif;"> Wants to execute this Jar file only one time. </span><br />
<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW1F6MfbniyptW4xCWSA7HRY7bZrQTgWAXm_Ea3r8S-j1Ou_tT1BDd7oMnQxY7vPrEb0USwsOH7Jp-3_dMpLqzUeaGUL81TlKgYVeRzshXMH6AcjxVlMECw0WPCdQjriT_96WEMN1ZNVU/s1600/Trigger.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="339" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhW1F6MfbniyptW4xCWSA7HRY7bZrQTgWAXm_Ea3r8S-j1Ou_tT1BDd7oMnQxY7vPrEb0USwsOH7Jp-3_dMpLqzUeaGUL81TlKgYVeRzshXMH6AcjxVlMECw0WPCdQjriT_96WEMN1ZNVU/s640/Trigger.PNG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJdQD1KbLRVk_ct4flin16ytNuy6HNouGKVdWMnL_Sg0T_75m8RLIrcJgNyt04tfRmlVXsnCGXkmvVBzMxsGhVEERrkwTXOj2PJKaslX9_XptW0BvVNZBGtq5YA62VWyaukBO3aFUzi1s/s1600/onetime.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="339" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhJdQD1KbLRVk_ct4flin16ytNuy6HNouGKVdWMnL_Sg0T_75m8RLIrcJgNyt04tfRmlVXsnCGXkmvVBzMxsGhVEERrkwTXOj2PJKaslX9_XptW0BvVNZBGtq5YA62VWyaukBO3aFUzi1s/s640/onetime.PNG" width="640" /></a></div>
<br />
<h4 style="text-align: left;">
<span style="font-family: Georgia,"Times New Roman",serif;"><span style="color: magenta;">3- Action:</span></span></h4>
<span style="font-family: Georgia,"Times New Roman",serif;">Select Start a Program option from below.</span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikUiuKiAwQqG051cA6_MYWDaRv8KPw7ySizuPYYkmCUtZ9EOrUE3OjNdbG2XrKcDpSAEZW76hyphenhyphen89WzC6_E8IO0XLu-ew5rNGtZDM7GatJ_S0iozQFDjipJqd0k3LoPUEEs65S7sKL-hEs/s1600/Action.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEikUiuKiAwQqG051cA6_MYWDaRv8KPw7ySizuPYYkmCUtZ9EOrUE3OjNdbG2XrKcDpSAEZW76hyphenhyphen89WzC6_E8IO0XLu-ew5rNGtZDM7GatJ_S0iozQFDjipJqd0k3LoPUEEs65S7sKL-hEs/s640/Action.PNG" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipxoLD4qKi7x34vJv6Jzx_Uhv7rw0YESpYchyjU_qz6oT-MRcfZmNMCNHdk8u_KFcKo4U8Q7F4VUdM7ZueifbBoNPdMFXELgS11LJYVlvIOjU_2SpOrNGex6qpF4UdiJ4r98C10mkT-NY/s1600/Start+Program.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="336" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEipxoLD4qKi7x34vJv6Jzx_Uhv7rw0YESpYchyjU_qz6oT-MRcfZmNMCNHdk8u_KFcKo4U8Q7F4VUdM7ZueifbBoNPdMFXELgS11LJYVlvIOjU_2SpOrNGex6qpF4UdiJ4r98C10mkT-NY/s640/Start+Program.PNG" width="640" /></a></div>
<br />
<h4 style="text-align: left;">
<span style="color: magenta;"><span style="font-family: Georgia,"Times New Roman",serif;">4- Finish:</span></span></h4>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsWTJVFdbvm-HWYpPklv9lq34oMKi4pfrGH2Wnzp5asYUAcKqyeikJqxNBQbs7VyRRFFWJnc0OZ8z0lJbfK-SkxdjnNK69EK9hDY0YXXhIUaX3qeUcvrEGXKSlU-IEiFDqsYSxgdQggW0/s1600/finish.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="339" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgsWTJVFdbvm-HWYpPklv9lq34oMKi4pfrGH2Wnzp5asYUAcKqyeikJqxNBQbs7VyRRFFWJnc0OZ8z0lJbfK-SkxdjnNK69EK9hDY0YXXhIUaX3qeUcvrEGXKSlU-IEiFDqsYSxgdQggW0/s640/finish.PNG" width="640" /></a></div>
<br />
<span style="font-family: Georgia,"Times New Roman",serif;">Finally Select finish button & Enjoy.</span><br />
<br />
CLASSPATH<br />
<br />
D:\Avinash\BatchFile\bin\batch;D:\Program Files\Java\jre1.8.0_51\lib;D:\Program Files\Java\jdk1.8.0_31\lib;E:\Avinashh;<br />
<br />
<br />
JAVA_HOME<br />
<br />
D:\Program Files\Java\jre1.8.0_31;D:\Program Files\Java\jdk1.8.0_31\bin;<br />
<br />
PATH<br />
<br />
D:\Users\General\Downloads\IEDriverServer_Win32_2.44.0\IEDriverServer.exe;D:\Program Files\Java\jdk1.8.0_31\bin;G:\Java\JUnit\junit_4_10_jar\junit-4.10.jar;E:\Avinashh<br />
<br /></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com2tag:blogger.com,1999:blog-8770391591876702071.post-83966799326179245232015-06-26T10:02:00.000-07:002015-06-26T10:02:11.564-07:00Handling drop down List in Selenium Webdriver with C#<div dir="ltr" style="text-align: left;" trbidi="on">
<b><a href="https://drive.google.com/file/d/0B60V_NmDzs-HN25Pb3lHLTRsWGc/view?usp=sharing" target="_blank">Click Here To Download Code</a></b> <br />
<br />
To Handle dropDownlist in selenium webdriver, We have to use "SelectElement" class in c#.Net.<br />
It is located in package of <span style="color: magenta;">"OpenQA.Selenium.Support.UI"</span>.<br />
<br />
There are different representation of "Select" class in C#.Net and Java.<br />
<br />
<span style="color: #741b47;"><b>In C#:</b></span><br />
<span style="color: #741b47;">Ex:</span><br />
<span style="color: #741b47;"> SelectElement se = new SelectElement( element ) ;</span><br />
<br />
<span style="color: #38761d;"><b>In Java:</b></span><br />
<span style="color: #274e13;">Ex:</span><br />
<span style="color: #274e13;"> Select se = new select( element ) ;</span><br />
<br />
<b>We can Select element/option from DropDown List by 3-ways:</b><br />
<ol style="text-align: left;">
<li><span style="color: red;">SelectByIndex( int )</span> - Select an option by index position.</li>
<li><span style="color: #38761d;">SelectByValue( String )</span> - Select an option by the value.</li>
<li><span style="color: #0b5394;">SelectByText( String )</span> - Select an option by displayed Text.</li>
</ol>
<br />
To demonstrate how to handle drop down list. I am going to consider <span style="color: magenta;"><b>"Facebook"</b></span> application. Because it has three drop down list 1-Month 2-Day & 3-Year(Birthdate).<br />
In Below example I want to select Jun 21 1984 as a Birthdate,<br />
<br />
<br />
<span style="color: blue;"><b>Example:</b></span><br />
<span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>NUnit.Framework;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Firefox;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Interactions;<br /><span style="color: blue;">using </span>OpenQA.Selenium;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Support.UI;<br /><br /><span style="color: blue;">namespace </span>SleniumWebDriverWithCSharpTutorial<br />{<br /> [<span style="color: #6fa8dc;">TestFixture</span>]<br /> <span style="color: blue;"> public class</span> <span style="color: #6fa8dc;">HandlingDropDownList</span><br /> {<br /> <span style="color: #6fa8dc;">IWebDriver </span>driver = <span style="color: blue;">null </span>;<br /> <span style="color: #6fa8dc;">IWebElement </span>element = <span style="color: blue;">null </span>;<br /><br /> [<span style="color: #6fa8dc;">SetUp</span>]<br /> <span style="color: blue;"> public void </span>SetUP()<br /> {<br /> driver = new <span style="color: #6fa8dc;">FirefoxDriver</span>();<br /> driver.Manage().Window.Maximize();<br /> driver.Url = "<span style="color: blue;">http://facebook.com</span>";<br /> }<br /><br /> [<span style="color: #6fa8dc;">Test</span>]<br /> <span style="color: blue;"> public void </span>TestDropDownList()<br /> {<br /> <span style="color: #38761d;">//wait for to get Facebook Home page title</span><br /> <span style="color: #6fa8dc;">WebDriverWait </span>wait = new <span style="color: #6fa8dc;">WebDriverWait</span>(driver,<span style="color: #6fa8dc;">TimeSpan</span>.FromSeconds(10));<br /> wait.Until(<span style="color: #6fa8dc;">ExpectedConditions</span>.ElementIsVisible(<span style="color: #6fa8dc;">By</span>.Id("<span style="color: red;">month</span>")));<br /><br /> <span style="color: #274e13;">//Handling Drop Down List to select Birth Month as "Jun".</span><br /> <span style="color: #6fa8dc;">SelectElement </span>se = new <span style="color: #6fa8dc;">SelectElement</span>(driver.FindElement(<span style="color: #6fa8dc;">By</span>.Id("month")));<br /> <span style="color: blue;">foreach </span>(<span style="color: #6fa8dc;">IWebElement </span>item <span style="color: blue;">in </span>se.Options)<br /> {<br /> <span style="color: blue;">if </span>(item.Text == <span style="color: red;">"Jun"</span>)<br /> {<br /> item.Click();<br /> <span style="color: blue;">break</span> ;<br /> } <br /> }<br />
<br />
<span style="color: #274e13;"> <span style="color: #38761d;">//Set previous element reference to b=null</span></span><br /> se = <span style="color: blue;">null </span>;<br /> <span style="color: #274e13;">//select By using Index Position</span><br /> se = <span style="color: blue;">new </span><span style="color: #6fa8dc;">SelectElement</span>(driver.FindElement(<span style="color: #6fa8dc;">By</span>.Id("<span style="color: red;">day</span>")));<br /> se.SelectByIndex(21);<br />
<br />
<br />
<span style="color: #274e13;">//Set previous element reference to b=null</span><br /> se = <span style="color: blue;">null </span>;<br /> <span style="color: #274e13;">//Select By Using Value</span><br /> se = <span style="color: blue;">new </span><span style="color: #6fa8dc;">SelectElement</span>(driver.FindElement(<span style="color: #6fa8dc;">By</span>.Id("<span style="color: red;">year</span>")));<br /> se.SelectByValue("<span style="color: red;">1984</span>"); <br /> }<br /><br /> [TearDown]<br /> <span style="color: blue;"> public void</span> TearDown()<br /> {<br /> <span style="color: blue;">if </span>(element != <span style="color: blue;">null</span>)<br /> element = <span style="color: blue;">null </span>;<br /> driver.Close();<br /> }<br /> }<br />}<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<b><a href="https://drive.google.com/file/d/0B60V_NmDzs-HN25Pb3lHLTRsWGc/view?usp=sharing" target="_blank">Click Here To Download Code</a></b><br /></div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com0tag:blogger.com,1999:blog-8770391591876702071.post-90235718125906130382015-06-14T05:09:00.000-07:002015-06-21T20:11:48.556-07:00Page Object Model For Selenium WebDriver<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
<span style="color: magenta;"></span></h3>
<h3 style="text-align: left;">
<u><span style="color: blue;"> <a href="https://drive.google.com/folderview?id=0B60V_NmDzs-HfnJENzlydUtxbVFlek53RExZLWRlajRHY3U4TE1ZakZTNXRPOXNZRmNVREk&usp=sharing" target="_blank">Click Here to Download Complete Project</a></span></u></h3>
<h3 style="text-align: left;">
<br /></h3>
<h3 style="text-align: left;">
<span style="color: magenta;">Page Object Model Framework in Selenium:</span></h3>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"> Page Object Model Framework has now a days become very popular test
automation framework in the industry and many companies are now adopting it
because of its easy test maintenance and reduces the duplication of
code. </span></div>
<ul style="text-align: left;">
<li><span style="font-family: Verdana,sans-serif;">The main advantage of Page Object Model is that if the UI element / Controls changes for any page, it doesn't require us to change any Tests . </span></li>
<li><span style="font-family: Verdana,sans-serif;">We just need to change only the code within the page objects. This framework is mostly used with Selenium. </span></li>
</ul>
<ul style="text-align: left;">
<li><span style="font-family: Verdana,sans-serif;">It is one Design Pattern for Selenium Code. </span></li>
<li><span style="font-family: Verdana,sans-serif;">It Provides the clean separation page code from Test code.</span></li>
</ul>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"> In Page Object Model we are going to Create a Separate class for separate Web Page. In that class we are going to map UI elements as a object and their respective action on these controls such as <span style="color: magenta;"><span style="background-color: white;">"signIn"</span></span> or <span style="color: magenta;">"sign-Up"</span> or <span style="color: magenta;">"Forget password"</span>.</span></div>
<div style="text-align: left;">
<br />
<span style="font-family: Verdana,sans-serif;">Each action on a page (controls) can be represented as a method in their respective class. so Finally we can say that - "Each page has respective class containing <span style="color: magenta;">UI element</span>(<span style="color: magenta;">Locators </span>of each element on that page ) and their respective <span style="color: magenta;">actions </span>as a "<span style="color: magenta;">Method</span>" in that class. <span style="color: blue;"> </span></span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<u><span style="font-family: Verdana,sans-serif;"><span style="color: magenta;"><b>See in a below screen shot-</b></span></span></u></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"><span style="color: blue;"><span style="color: black;"> Here I am considering facebook applicatios "HomePage". I have Used POM framework to Test Facebook Application. I have written Three Test. we will see in later part......</span></span></span></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgYDVcuISpgEZQEp7DC42GsM7BmXqubJWYuT3In9OjgL8uB5LxoSQbMNZAltaYwESc1UBAcni81aMXA7anrAlyABhC18erxmDGnQH2VNHn5qEAuwhLAki1evfqa_qO9O-CjIQoY1uAK_A/s1600/UIElements_Locators.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjgYDVcuISpgEZQEp7DC42GsM7BmXqubJWYuT3In9OjgL8uB5LxoSQbMNZAltaYwESc1UBAcni81aMXA7anrAlyABhC18erxmDGnQH2VNHn5qEAuwhLAki1evfqa_qO9O-CjIQoY1uAK_A/s640/UIElements_Locators.PNG" width="640" /></a></div>
<div style="text-align: left;">
<span style="color: blue;"><span style="color: black;"> </span></span> </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<b><br /></b>
<b><span style="font-family: Verdana,sans-serif;">UI Element and their Locators:</span></b><br />
<br />
<span style="color: blue;">static </span>IWebDriver driver = <span style="color: blue;">null</span>;<br />
<span style="color: blue;">static </span>IWebElement element = <span style="color: blue;">null</span>;<br />
<span style="color: #6aa84f;"> //(UIObject) Locators for Login/SignIn</span><br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>userName = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"email"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Password = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"pass"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>LogIn = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.XPath(<span style="color: red;">"//input[@type='submit'][@value='Log In']"</span>);<br />
<br />
<span style="color: #6aa84f;"> // (UIObject) Locators for to Register a New User on Facebook Application</span><br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>FirstName = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_1"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>LastName = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_3"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Email = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_5"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>ReEmail = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_8"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>NewPassword = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_a"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Month = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"month"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Day = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"day"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Year = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"year"</span>);<br />
<span style="color: blue;">static </span><span style="color: #3d85c6;">By </span>GenderFemale = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_d"</span>);<br />
<span style="color: blue;">static </span><span style="color: #3d85c6;">By </span>GenderMale = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_e"</span>);<br />
<span style="color: blue;">static </span><span style="color: #6fa8dc;">By </span>SignUp = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_i"</span>);<br />
<br />
<span style="font-family: Verdana,sans-serif;"><b>Respective Action on UI element:</b></span><br />
<span style="color: #f3f3f3;"> <span style="color: #999999;">/// <summary></span></span><br />
/// <span style="color: #38761d;">Set the user Name to be Logged in.</span><br />
<span style="color: #999999;"> /// </summary><br /> /// <param name="UserName"></span><span style="color: #38761d;">UserName to be Log-In</span><span style="color: #999999;"></param></span><br />
<span style="color: blue;">public static void</span> setUserName(<span style="color: #6fa8dc;">String </span>UserName)<br />
{<br />
driver.FindElement(userName).SendKeys(UserName);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary></span><br />
/// <span style="color: #38761d;">Set the Password, in the password field of facebook application.</span><br />
<span style="color: #999999;"> /// </summary><br /> /// <param name="UserPassword"></span><span style="color: #38761d;">Password of user wants to Log-in.</span><span style="color: #999999;"></param></span><br />
<span style="color: blue;"> public static void</span> setUserPassword(<span style="color: #6fa8dc;">String </span>UserPassword)<br />
{<br />
driver.FindElement(Password).SendKeys(UserPassword);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary></span><br />
<span style="color: #6aa84f;"> /// Clcik on Login In Button.</span><br />
<span style="color: #999999;"> /// </summary></span><br />
<span style="color: blue;"> public static void </span>ClickLogin()<br />
{<br />
driver.FindElement(LogIn).Click();<br />
}</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<u><span style="color: magenta;">Advantages of Framework:</span></u></h3>
<ul style="text-align: left;">
<li><span style="font-family: Verdana,sans-serif;">The biggest advantage of the software framework is that it reduces the time and energy in developing any software. </span></li>
<li><span style="font-family: Verdana,sans-serif;">There is clean separation between test code and page specific code such
as locators.</span></li>
<li><span style="font-family: Verdana,sans-serif;">Code Maintainability</span></li>
<li><span style="font-family: Verdana,sans-serif;">More Readability.</span></li>
<li><span style="font-family: Verdana,sans-serif;">Less Error Prone.</span></li>
<li><span style="font-family: Verdana,sans-serif;">Seperation of Concern.</span></li>
<li><span style="font-family: Verdana,sans-serif;">Framework follow design pattern, so when you use these frameworks
you’ve to follow their coding convention which makes your code clean and
extensible for future purpose.</span></li>
<li><span style="font-family: Verdana,sans-serif;">Framework separates business logic from user interface making the code cleaner and extensible.</span></li>
<li><span style="font-family: Verdana,sans-serif;">Frameworks help you to develop the project rapidly, if you know one
framework well then you’ll never worry about the project deadline. </span></li>
</ul>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<u><span style="color: magenta;">How to setup Page Object Model In Visual Studio ( Selenium with C# & NUnit )</span></u></h3>
<h4 style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"><span style="color: #a64d79;">Pre-requisite:</span></span></h4>
<ul style="text-align: left;">
<li><span style="font-family: Verdana,sans-serif;">Visual studio Any version (I have used 2012).</span></li>
<li><span style="font-family: Verdana,sans-serif;">NUnit 2.6.4</span></li>
<li><span style="font-family: Verdana,sans-serif;">Selenium webdriver (selenium-server-standalone-2.46.0.jar) </span></li>
</ul>
<div style="text-align: left;">
</div>
<h4 style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"><span style="color: #a64d79;"><b>Steps to Create:</b></span></span></h4>
<div style="text-align: left;">
<b><span style="font-family: Verdana,sans-serif;">Open Visual Studio</span></b></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;">1- Select <span style="color: blue;">New Project -> select Visual C# -> select Class Library</span>. give Name as PageObjectModel.</span></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"> Add the references for Selenium </span></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;">2- Select the Solution and right <span style="color: blue;">click add->New Project->Test->Unit Test.</span></span></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;">Add the references for NUnit Testing Framework.</span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"><b><span style="color: #741b47;">Description:</span></b></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span style="font-family: Verdana,sans-serif;">The Class Library project contains the selenium code ( Webpage UI Element and their respective actions )</span></li>
</ul>
</div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;">. </span></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;">The Next, Test project contains the Test code only.</span></div>
<div style="text-align: left;">
<span style="font-family: Verdana,sans-serif;"><br /></span></div>
<div style="text-align: left;">
<ul style="text-align: left;">
<li><span style="font-family: Verdana,sans-serif;">The standard says Your class Library should be depends on selenium and your Test should be independent.</span></li>
</ul>
<br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;"><span style="color: #741b47;"><b>Project Structure:</b></span></span><br />
<span style="font-family: Verdana,sans-serif;"> See the below screen shot for Project structure in a project. </span><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVrR5O2hVDAuj6e48L6wdFxQUzfil-uIEEYT8ls5ZkTAr7K6OkyeitwHo-S0klMlE6nsxWsZ2jgTnCw2EGxsVpXUTom7Q3rpCaeTHrOZamt8AOaqy3Rw6Ysk-DJSdcWKhD4sxCX8lDj7I/s1600/projectStructure.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVrR5O2hVDAuj6e48L6wdFxQUzfil-uIEEYT8ls5ZkTAr7K6OkyeitwHo-S0klMlE6nsxWsZ2jgTnCw2EGxsVpXUTom7Q3rpCaeTHrOZamt8AOaqy3Rw6Ysk-DJSdcWKhD4sxCX8lDj7I/s640/projectStructure.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
=============================================================================================<br />
<span style="font-family: Verdana,sans-serif;"><b><span style="color: #741b47;">Class library project Contains Following files:</span></b></span><br />
<br />
<span style="font-family: Verdana,sans-serif;"><span style="color: purple;">Browser.cs : </span>Common file used to set the Browser while executing the Test.</span><br />
<br />
<span style="font-family: Verdana,sans-serif;"><span style="color: purple;">HomePage.cs: </span>Contains the <span style="color: magenta;">"Login"</span> and <span style="color: magenta;">"sign-Up"</span> Actions</span><br />
<br />
<span style="font-family: Verdana,sans-serif;"><span style="color: purple;">AfterLogin.cs:</span> Contains the "<span style="color: magenta;">UpdateStatusOnfacebook</span>" & "<span style="color: magenta;">Loggedout</span>" actions.</span><br />
<br />
<span style="font-family: Verdana,sans-serif;"><span style="color: purple;">RegisterPage.cs:</span> Contains the "<span style="color: magenta;">getTitle</span>" action.</span><br />
<span style="font-family: Verdana,sans-serif;"><br /></span>
<span style="font-family: Verdana,sans-serif;"><span style="color: #741b47;"><b>Test Project contains following files:</b></span></span><br />
<br />
<span style="font-family: Verdana,sans-serif;"><span style="color: #351c75;">AfterLoginTest.cs: </span>Test the functionality of Successful "<span style="color: magenta;">Login</span>" and after "<span style="color: magenta;">UpdateStatusOnfacebook</span>".</span><br />
<br />
<span style="font-family: Verdana,sans-serif;"><span style="color: #351c75;">HomePage.cs:Test </span>the functionality of "<span style="color: magenta;">Login</span>" successful and "<span style="color: magenta;">RegisterNewUser</span>".</span><br />
<br />
<h3 style="text-align: left;">
<u><span style="color: magenta;"><span style="background-color: white;"><b>Project Code:</b></span></span></u></h3>
<div style="text-align: left;">
<u><span style="color: purple;"><span style="background-color: white;"><b>File Browser.cs:</b></span></span></u></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="color: #741b47;"><span style="background-color: white;"><span style="color: black;"><span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>System.Collections.Generic;<br /><span style="color: blue;">using </span>System.Linq;<br /><span style="color: blue;">using </span>System.Text;<br /><span style="color: blue;">using </span>System.Threading.Tasks;<br /><span style="color: blue;">using </span>OpenQA.Selenium;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Support;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Firefox;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Chrome;<br /><span style="color: blue;">using </span>OpenQA.Selenium.IE;<br /><br /><br /><span style="color: blue;">namespace </span>PageObjectModel<br />{<br /> <span style="color: blue;"> public class</span> <span style="color: #3d85c6;">Browser</span><br /> {<br /> <span style="color: blue;">static </span><span style="color: #3d85c6;">IWebDriver </span>driver = <span style="color: blue;">null </span>;<br /><br /> <span style="color: blue;"> public static </span><span style="color: #3d85c6;">String </span>BrowserName = <span style="color: blue;">null </span>;<br /><br /><br /> <span style="color: #999999;"> /// <summary></span><br /> <span style="color: #38761d;">/// set the Browser in which Application should be opened.</span><br /> <span style="color: #666666;"> /// </summary><br /> /// <param name="BName"><span style="color: #38761d;">Enter the Name of Browser</span></param><br /> /// <returns><span style="color: #38761d;">Newly created instance of Respective Browser</span></returns></span><br /> <span style="color: blue;"> public static</span> <span style="color: #0b5394;">IWebDriver </span>SetBrowserName(<span style="color: #0b5394;">String </span>BName)<br /> {<br /> <span style="color: blue;">switch </span>(BName)<br /> {<br /> <span style="color: blue;">case </span><span style="color: red;">"firefox"</span>:<br /> {<br /> <span style="color: #e06666;">driver </span>= <span style="color: blue;">new </span><span style="color: #3d85c6;">FirefoxDriver</span>();<br /> break;<br /> }<br /> <span style="color: blue;">case </span><span style="color: red;">"chrome"</span>:<br /> {<br /><br /> <span style="color: #e06666;">driver </span>= <span style="color: blue;">new </span><span style="color: #3d85c6;">ChromeDriver</span>(<span style="color: red;">"G:\\Selenium\\LatestDriver\\chromedriver_win32"</span>);<br /> <span style="color: blue;"> break;</span><br /> }<br /> <span style="color: blue;">case </span><span style="color: red;">"ie"</span>:<br /> {<br /> <span style="color: #e06666;">driver </span>= <span style="color: blue;">new </span><span style="color: #3d85c6;">InternetExplorerDriver</span>(<span style="color: red;">"G:\\Selenium\\LatestDriver\\IEDriverServer_Win32_2.46.0"</span>);<br /> <span style="color: blue;">break</span>;<br /> }<br /> <span style="color: blue;">default</span>:<br /> {<br /> <span style="color: #e06666;">driver </span>= <span style="color: cyan;">null</span>;<br /> <span style="color: blue;">break</span>;<br /> }<br /> }<br /> <span style="color: blue;">return </span><span style="color: #ea9999;">driver</span>;<br /> }<br /><br /> <span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Close the current Browser/Application</span><br /> /// </summary></span><br /> <span style="color: blue;"> public static</span> <span style="color: blue;">void </span>Close()<br /> {<br /> <span style="color: #e06666;">driver</span>.Close();<br /> }<br /> }<br />}</span></span></span></div>
<div style="text-align: left;">
<br />
<br />
<span style="font-family: Verdana,sans-serif;"><u><span style="color: purple;"><b>File HomePage.cs</b></span></u></span><br />
<br />
<span style="color: #741b47;"><span style="background-color: white;"><span style="color: black;"><span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>System.Collections.Generic;<br /><span style="color: blue;">using </span>System.Linq;<br /><span style="color: blue;">using </span>System.Text;<br /><span style="color: blue;">using </span>System.Threading.Tasks;<br /><span style="color: blue;">using </span>OpenQA.Selenium;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Support;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Firefox;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Chrome;<br /><span style="color: blue;">using </span>OpenQA.Selenium.IE;</span></span></span><br />
<br />
<span style="color: blue;">namespace </span>PageObjectModel<br />
{<br />
<span style="color: blue;"> public class</span> <span style="color: #3d85c6;">HomePage</span><br />
{<br />
<br />
<span style="color: blue;">static </span><span style="color: #3d85c6;">IWebDriver </span>driver = <span style="color: blue;">null</span>;<br />
<span style="color: blue;">static </span><span style="color: #3d85c6;">IWebElement </span>element = <span style="color: blue;">null</span>;<br />
//<span style="color: #38761d;">(UIObject) Locators for Login/SignIn</span><br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>userName = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"email"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Password = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id<span style="color: red;">("pass"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>LogIn = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.XPath(<span style="color: red;">"//input[@type='submit'][@value='Log In']"</span>);<br />
<br />
<br />
// <span style="color: #38761d;">(UIObject) Locators for to Register a New User on Facebook Application</span><br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>FirstName = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_1"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>LastName = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_3"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Email = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_5"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>ReEmail = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_8"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>NewPassword = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_a"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Month = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"month"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Day = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"day"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>Year = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"year"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>GenderFemale = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_d"</span>);<br />
<span style="color: blue;">static </span><span style="color: blue;"></span><span style="color: #3d85c6;">By </span>GenderMale = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_e"</span>);<br />
<span style="color: blue;">static </span><span style="color: #3d85c6;">By </span>SignUp = <span style="color: blue;"></span><span style="color: #3d85c6;">By </span>.Id(<span style="color: red;">"u_0_i"</span>);<br />
<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Constructor to initialize set the browser for Homepage</span><br /> /// </summary><br /> /// <param name="driverr"><span style="color: #38761d;">Tell us on which Browser the application is going to open</span></param></span><br />
<span style="color: blue;">public </span>HomePage(<span style="color: #0b5394;">IWebDriver </span>driverr)<br />
{<br />
driver = driverr;<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Set the Browser on which the application is to be Run/Test.</span><br /> /// </summary><br /> /// <param name="BrowserName"><span style="color: #38761d;">Name of browser to be Set</span></param><br /> /// <returns><span style="color: #38761d;">Instance of newely set Browser</span></returns></span><br />
<span style="color: blue;"> public static</span> <span style="color: #0b5394;">IWebDriver </span>setbrowser(<span style="color: #0b5394;">String </span>BrowserName)<br />
{<br />
driver = <span style="color: #0b5394;">Browser</span>.SetBrowserName(BrowserName);<br />
<span style="color: blue;">return </span>driver;<br />
}<br />
<br />
<span style="color: #999999;">/// <summary><br /> /// <span style="color: #38761d;">Set the URL of an Application to be Test</span><br /> /// </summary><br /> /// <param name="url"><span style="color: #38761d;">URL of Your Application under Test</span>.</param></span><br />
<span style="color: blue;">public static</span> <span style="color: blue;">void</span> SetURL(<span style="color: #0b5394;">String </span>url)<br />
{<br />
driver.Manage().Window.Maximize();<br />
driver.Navigate().GoToUrl(url);<br />
driver.Manage().Timeouts().ImplicitlyWait(<span style="color: #3d85c6;">TimeSpan</span>.FromSeconds(10));<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Set the user Name to be Logged in.</span><br /> /// </summary><br /> /// <param name="UserName"><span style="color: #38761d;">UserName to be Log-In</span></param></span><br />
<span style="color: blue;"> public static void</span> setUserName(<span style="color: #3d85c6;">String </span>UserName)<br />
{<br />
driver.FindElement(userName).SendKeys(UserName);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Set the Password, in the password field of facebook application.</span><br /> /// </summary><br /> /// <param name="UserPassword"><span style="color: #38761d;">Password of user wants to Log-in.</span></param></span><br />
<span style="color: blue;">public static void</span> setUserPassword(<span style="color: #3d85c6;">String </span>UserPassword)<br />
{<br />
driver.FindElement(Password).SendKeys(UserPassword);<br />
}<br />
<br />
<span style="color: #999999;">/// <summary><br /> /// <span style="color: #38761d;">Clcik on Login In Button.</span><br /> /// </summary></span><br />
<span style="color: blue;"> public static void</span> ClickLogin()<br />
{<br />
driver.FindElement(LogIn).Click();<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Click on Logged in Button after filling UserName and Password field.</span><br /> /// </summary><br /> /// <param name="userName"><span style="color: #38761d;">User Name of User</span></param><br /> /// <param name="Password"><span style="color: #38761d;">Password of User.</span></param><br /> /// <returns><span style="color: #38761d;">Return/Directed to the Next page after successful of Registering the User.</span></returns></span><br />
<span style="color: blue;"> public static</span> <span style="color: #3d85c6;">AfterLogin </span>ClickOnLogin(<span style="color: #3d85c6;">String </span>userName, <span style="color: #3d85c6;">String </span>Password)<br />
{<br />
setUserName(userName);<br />
setUserPassword(Password);<br />
ClickLogin();<br />
<span style="color: blue;"> return new</span> <span style="color: #3d85c6;">AfterLogin</span>(driver);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Get the Title/Constant String from Home Page to Identify each page from each other.</span><br /> /// </summary><br /> /// <returns></returns></span><br />
<span style="color: blue;">public static</span> <span style="color: #3d85c6;">String </span>getTitle()<br />
{<br />
<span style="color: #3d85c6;">return </span>driver.Title;<br />
}<br />
<br />
<span style="color: #38761d;"> //II Test Part <br /> // second part of Action in a HomePage is Register a User </span><br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Set the New User name to be Register.</span><br /> /// </summary><br /> /// <param name="firstName"><span style="color: #38761d;">Enter First name of User</span></param></span><br />
<span style="color: blue;"> public static void </span>SetRegisterUserFirstName(<span style="color: #3d85c6;">String </span>firstName)<br />
{<br />
driver.FindElement(FirstName).SendKeys(firstName);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Set the New User Last Name to be Register.</span><br /> /// </summary><br /> /// <param name="lastName"><span style="color: #38761d;">last Name of New User</span></param></span><br />
<span style="color: blue;"> public static void </span>SetRegisterUserLastName(<span style="color: #3d85c6;">String </span>lastName)<br />
{<br />
driver.FindElement(LastName).SendKeys(lastName);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Set the Email of New user for Verification.</span><br /> /// </summary><br /> /// <param name="eMail"><span style="color: #38761d;">Enter Email of New user for verification</span></param></span><br />
<span style="color: blue;">public static void</span> SetEmail(<span style="color: #3d85c6;">String </span>eMail)<br />
{<br />
driver.FindElement(Email).SendKeys(eMail);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Re-Enter the mail</span><br /> /// </summary><br /> /// <param name="reEmail"><span style="color: #38761d;">Re-Enter the mail of new user </span></param></span><br />
<span style="color: blue;"> public static void </span>SetReEMail(<span style="color: #3d85c6;">String </span>reEmail)<br />
{<br />
driver.FindElement(ReEmail).SendKeys(reEmail);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Set the Password for Facebook login for new user</span><br /> /// </summary><br /> /// <param name="newPassword"><span style="color: #38761d;">Enter New password</span></param></span><br />
<span style="color: blue;">public static void</span> SetNewPassword(<span style="color: #0b5394;">String </span>newPassword)<br />
{<br />
driver.FindElement(NewPassword).SendKeys(newPassword);<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Select the Month from Drop Down List.</span><br /> /// </summary><br /> /// <param name="month"><span style="color: #38761d;">Enter your Birth Month </span></param></span><br />
<span style="color: blue;">public static void</span> SelectMonth(<span style="color: #3d85c6;">String </span>month)<br />
{<br />
<br />
<span style="color: #3d85c6;">SelectElement </span>select = <span style="color: blue;">new </span><span style="color: #3d85c6;">SelectElement</span>(driver.FindElement(Month));<br />
<span style="color: blue;">foreach </span>(<span style="color: #3d85c6;">IWebElement </span>item <span style="color: blue;">in </span>select.Options)<br />
{<br />
<span style="color: blue;">if </span>(item.Text.Contains(month))<br />
item.Click();<br />
}<br />
}<br />
<br />
<span style="color: #999999;">/// <summary><br /> /// <span style="color: #38761d;">select the year of Your Birth from Drop DownList.</span><br /> /// </summary><br /> /// <param name="year"><span style="color: #38761d;">Enter Your year of Birth.</span></param></span><br />
<span style="color: blue;">public static void</span> SelectYear(<span style="color: #3d85c6;">String </span>year)<br />
{<br />
<span style="color: #3d85c6;">SelectElement </span>select = <span style="color: blue;">new </span><span style="color: #3d85c6;">SelectElement</span>(driver.FindElement(Year));<br />
<span style="color: blue;">foreach </span>(<span style="color: #3d85c6;">IWebElement </span>item <span style="color: blue;">in </span>select.Options)<br />
{<br />
<span style="color: blue;">if </span>(item.Text.Contains(year))<br />
item.Click();<br />
}<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Select Birth day from drop DownList.</span><br /> /// </summary><br /> /// <param name="day"><span style="color: #38761d;">Enter your Birthday.</span></param></span><br />
<span style="color: blue;"> public static void </span>SelectDay(<span style="color: #3d85c6;">String </span>day)<br />
{<br />
<span style="color: #3d85c6;">SelectElement </span>select = <span style="color: blue;">new </span><span style="color: #3d85c6;">SelectElement</span>(driver.FindElement(Day));<br />
<span style="color: blue;">foreach </span>(<span style="color: #3d85c6;">IWebElement </span>item <span style="color: blue;">in </span>select.Options)<br />
{<br />
<span style="color: blue;">if </span>(item.Text == day)<br />
item.Click();<br />
}<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">select Your Gender</span><br /> /// </summary><br /> /// <param name="gender"><span style="color: #38761d;">select Male / Female</span></param></span><br />
<span style="color: blue;"> public static void</span> selectGender(<span style="color: #3d85c6;">String </span>gender)<br />
{<br />
<span style="color: #3d85c6;">String </span>genderr = gender.ToLower();<br />
element = driver.FindElement(GenderMale);<br />
<span style="color: blue;">if </span>(element.Text.ToLower() == genderr)<br />
{<br />
element.<span style="color: #3d85c6;">Click</span>();<br />
}<br />
else<br />
{<br />
element = driver.FindElement(GenderFemale);<br />
element.Click();<br />
}<br />
element = <span style="color: blue;">null</span>;<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> /// <span style="color: #38761d;">Click on signUp Button</span><br /> /// </summary></span><br />
<span style="color: blue;"> public static void</span> ClickSignUp()<br />
{<br />
driver.FindElement(SignUp).Click();<br />
}<br />
<br />
<span style="color: #999999;"> /// <summary><br /> ///<span style="color: #38761d;"> Register the new User with His/Her details.</span><br /> /// </summary><br /> /// <param name="firstName"><span style="color: #38761d;">Name of User.</span></param><br /> /// <param name="lastname"><span style="color: #38761d;">Last Name Of User.</span></param><br /> /// <param name="eMail"><span style="color: #38761d;">Existing Email of User.</span></param><br /> /// <param name="reEmail"><span style="color: #38761d;">Re-Enter the Existing E-mail.</span></param><br /> /// <param name="newPassword"><span style="color: #38761d;">Enter New Password to access facebook Application</span></param><br /> /// <param name="month"><span style="color: #38761d;">month of Birth.</span></param><br /> /// <param name="day"><span style="color: #38761d;">Birth Day</span></param><br /> /// <param name="year"><span style="color: #38761d;">Birth Year</span></param><br /> /// <param name="gender"><span style="color: #38761d;">male/Female</span></param><br /> /// <returns><span style="color: #38761d;">Return or Redirect to register Page.</span></returns></span><br />
<span style="color: blue;">public static</span> <span style="color: #3d85c6;">Registerpage </span>RegisterNewUser(<span style="color: #3d85c6;">string </span>firstName, <span style="color: #3d85c6;">String </span>lastname, <span style="color: #3d85c6;">String </span>eMail, <span style="color: #3d85c6;">String</span> reEmail, <span style="color: #3d85c6;">string </span>newPassword, <span style="color: #3d85c6;">String </span>month, <span style="color: #3d85c6;">string </span>day, <span style="color: #3d85c6;">string </span>year, <span style="color: #3d85c6;">String </span>gender)<br />
{<br />
SetRegisterUserFirstName(firstName);<br />
SetRegisterUserLastName(lastname);<br />
SetEmail(eMail);<br />
SetReEMail(reEmail);<br />
SetNewPassword(newPassword);<br />
SelectMonth(month);<br />
SelectDay(day);<br />
SelectYear(year);<br />
selectGender(gender);<br />
ClickSignUp();<br />
System.Threading.<span style="color: #3d85c6;">Thread</span>.Sleep(5000);<br />
<span style="color: blue;">return new</span> Registerpage(driver);<br />
}<br />
<br />
<br />
}<br />
}<br />
<br />
<br />
<h3 style="text-align: left;">
<span style="color: magenta;"><a href="https://drive.google.com/folderview?id=0B60V_NmDzs-HfnJENzlydUtxbVFlek53RExZLWRlajRHY3U4TE1ZakZTNXRPOXNZRmNVREk&usp=sharing" target="_blank">Click Here to Download Complete Project</a></span></h3>
<h3 style="text-align: left;">
<span style="color: magenta;"> </span></h3>
<h3 style="text-align: left;">
<u>See Also: </u></h3>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank">1- Download file using Selenium webdriver with C#</a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
2- <a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank">Upload file in Selenium WebDriver in java using Robot Class</a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
3- <a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank">Implicit and explicit wait in selenium Webdriver</a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
4- <a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank">Upload File Using Selenium WebdDriver in Java using AutoIt</a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
5-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank">Upload a file using selenium web driver in c#</a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
6-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank">Upload a file using selenium web driver in c# using AutoIt</a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
7-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank">Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</a></div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<h3 style="text-align: left;">
<span style="color: magenta;"> </span></h3>
</div>
</div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com32tag:blogger.com,1999:blog-8770391591876702071.post-91806207230963910162015-06-10T05:13:00.001-07:002015-06-21T20:03:57.887-07:00implicit and explicit wait in selenium<div dir="ltr" style="text-align: left;" trbidi="on">
<h4 style="text-align: left;">
<span style="color: magenta;">There are two types of wait in Selenium</span></h4>
<div style="text-align: left;">
</div>
<h3 style="text-align: left;">
<span style="color: blue;">Implicit & Explicit</span></h3>
<div style="text-align: left;">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<table align="center" cellpadding="0" cellspacing="0" class="tr-caption-container" style="margin-left: auto; margin-right: auto; text-align: center;"><tbody>
<tr><td style="text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtbNehiLIonlzz6MIlvt0G2KvGu24uF3PRS6x44jiyBqerzG880cdaVu9c_q_c2ydE6XeVH4GS_48VHLMb9zo4YfO83EilKjlA6Q59uAOBBfeHmJyMb3dSyhBoqw2dT73InsreNj9161w/s1600/WaitInSelenium.jpg" imageanchor="1" style="margin-left: auto; margin-right: auto;"><img border="0" height="443" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhtbNehiLIonlzz6MIlvt0G2KvGu24uF3PRS6x44jiyBqerzG880cdaVu9c_q_c2ydE6XeVH4GS_48VHLMb9zo4YfO83EilKjlA6Q59uAOBBfeHmJyMb3dSyhBoqw2dT73InsreNj9161w/s640/WaitInSelenium.jpg" width="640" /></a></td></tr>
<tr><td class="tr-caption" style="text-align: center;"><b>Types of Wait In Selenium</b></td></tr>
</tbody></table>
<br /></div>
<h3 style="text-align: left;">
<span style="color: magenta;">Implicit:</span></h3>
<div style="text-align: left;">
</div>
<ol style="text-align: left;">
<li>Selenium Web Driver has borrowed the idea of implicit waits from Watir.</li>
<li>An implicit wait is to tell Web Driver to poll the DOM for a certain amount of time when trying to find an element or elements if they are not immediately available.</li>
<li>We should note that implicit waits will be in place for the entire time the browser is open or whole life of Webdriver object.</li>
<li>This means that any search for an elements on the page could take the time the implicit wait is set for.</li>
<li>This Time is applicabe to each individual instuction / Statement in test.</li>
<li>Default implicit wait is 0.</li>
</ol>
<div style="text-align: left;">
<br />
<span style="color: magenta;"><b>Java Code:</b></span> <br />
WebDriver <span style="color: blue;">driver </span>= null;<br />
driver = new FirefoxDriver();<br />
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);<br />
<br />
C# Code:<br />
IWebDriver driver = null;<br />
driver = new FirefoxDriver();<br />
driver.Manage().Timeouts().ImplicitlyWait(TimeSpan.FromSeconds(10));<br />
<br />
<br /></div>
<h3 style="text-align: left;">
<span style="color: magenta;">Explicit Wait:</span></h3>
<ol style="text-align: left;">
<li>In explicit wait you can write custom code for a particular element to wait for particular time of period before executing next steps in your test. </li>
<li>This provide you better option than implicit wait.</li>
<li>WebDriver introduces classes like WebDriverWait and ExpectedConditions to enforce Explicit waits into the test scripts.</li>
<li>It is more suitable to handle JQuery, Ajax techniques / effect.</li>
<li>FluentWait is also comes under the Explicit wait.</li>
</ol>
<h4 style="text-align: left;">
<span style="color: magenta;">Java Code:</span></h4>
<div style="text-align: left;">
IWebDriver driver = null;<br />
driver = new FirefoxDriver();<br />
WebDriverWait wait = new WebDriverWait(driver,10);<br />
wait.until(ExpectedConditions.visibilityOf(driver.findElement(By.id("month"))));</div>
<h4 style="text-align: left;">
<span style="color: magenta;">C# code:</span></h4>
<div style="text-align: left;">
IWebDriver driver = null;<br />
driver = new FirefoxDriver();<br />
WebDriverWait wait = new WebDriverWait(driver, TimeSpan.FromSeconds(10));<br />
wait.Until(ExpectedConditions.ElementIsVisible(By.PartialLinkText("Selenium WebDriver Practical </div>
<div style="text-align: left;">
Guide")));</div>
<h4 style="text-align: left;">
<span style="color: magenta;">Example of WebdriverWait in Java:</span></h4>
<h4 style="text-align: left;">
<span style="color: magenta;"> </span></h4>
<h4 style="text-align: left;">
<span style="color: magenta;"><span style="color: purple;">package </span>airtel;<br /><br /><span style="font-weight: normal;"><span style="color: purple;">import static </span><span style="color: black;">org.junit.Assert.*;</span><br /><br /><span style="color: purple;">import<span style="color: black;"> </span></span><span style="color: black;">java.util.List;</span><br /><span style="color: purple;">import<span style="color: black;"> </span></span><span style="color: black;">java.util.concurrent.TimeUnit;</span></span><span style="color: black;"><b><span style="font-weight: normal;"><br /><span style="color: purple;">import </span>org.jboss.netty.util.Timeout;<br /><span style="color: purple;">import </span>org.junit.After;<br /><span style="color: purple;">import </span>org.junit.Assert;<br /><span style="color: purple;">import </span>org.junit.Before;<br /><span style="color: purple;">import </span>org.junit.Test;<br /><span style="color: purple;">import </span>org.openqa.selenium.By;<br /><span style="color: purple;">import </span>org.openqa.selenium.WebDriver;<br /><span style="color: purple;">import </span>org.openqa.selenium.WebElement;<br /><span style="color: purple;">import </span>org.openqa.selenium.firefox.FirefoxDriver;<br /><span style="color: purple;">import </span>org.openqa.selenium.support.ui.ExpectedConditions;<br /><span style="color: purple;">import </span>org.openqa.selenium.support.ui.Select;<br /><span style="color: purple;">import </span>org.openqa.selenium.support.ui.WebDriverWait;<br /><br /><b><span style="color: purple;">public class</span> WebdriverWaitDemo <br />{</b><br /> WebDriver driver = <span style="color: purple;">null</span>;<br /> WebElement element = <span style="color: purple;">null</span>;<br /> String actualText = <span style="color: purple;">null</span>;<br /><br /> <b> @Before<br /> <span style="color: purple;">public void </span>setUp() <span style="color: purple;">throws </span>Exception <br /> {</b><br /> <span style="color: blue;">driver </span>= new FirefoxDriver();<br /> <span style="color: blue;">driver</span>.manage().window().maximize();<br /> <span style="color: blue;">driver</span>.get("<span style="color: blue;">http://www.airtel.in/mobile/prepaid/tariffs</span>");<br /> </span><b><span style="font-weight: normal;"> <b> }</b></span></b><span style="font-weight: normal;"><br /> <br /> <b>@Test<br /> <span style="color: purple;"> public void</span> test() <br /> {</b><br /> WebDriverWait wait = new WebDriverWait(<span style="color: blue;">driver</span>,20);<br /> wait.until(ExpectedConditions.elementToBeClickable(By.id("<span style="color: #3d85c6;">region</span>")));<br /> <br /> Select changeRegion = <span style="color: purple;">new </span>Select(<span style="color: blue;">driver</span>.findElement(By.id("<span style="color: #3d85c6;">region</span>")));<br /> List<WebElement> regionList = changeRegion.getOptions();<br /> for (WebElement <span style="color: #e06666;">webElement </span>: <span style="color: #e06666;">regionList</span>) <br /> { <br /> if(<span style="color: #e06666;">webElement</span>.getText().toString().contains("<span style="color: #3d85c6;">Maharashtra</span>"))<br /> {<br /> <span style="color: #e06666;">webElement</span>.click(); <br /> }<br /> }<br /> <br /> <span style="color: #3d85c6;"> /***<br /> * Wait to see the different plans availabe for maharashtra region.<br /> * We will check the label Tariffs plans that are available in karnataka to Tariffs plans that are available in Maharashtra and Goa<br /> */</span><br /> WebDriverWait <span style="color: #e06666;">waitt </span>= new WebDriverWait(<span style="color: #3d85c6;">driver</span>,10);<br /> waitt.until(ExpectedConditions.elementToBeClickable(By.id("<span style="color: #3d85c6;">region</span>")));<br /> <br /> <span style="color: blue;">element </span>= <span style="color: blue;">driver</span>.findElement(By.id("<span style="color: #3d85c6;">fillCircleName</span>"));<br /> <span style="color: blue;">actualText </span>= <span style="color: blue;">element</span>.getText();<br /> System.<span style="color: blue;">out</span>.println(<span style="color: blue;">actualText</span>);<br /> <br /> Assert.assertEquals(<span style="color: #3d85c6;">"WebDriverWait run successfully", "Below are the tariff plans available in Maharashtra and Goa</span>", <span style="color: blue;">actualText</span>);<br /> <br /><b> }</b><br /><br /> <b> @After<br /> <span style="color: purple;"> public void</span> tearDown() <span style="color: purple;">throws </span>Exception <br /> {</b><br /> <span style="color: #3d85c6;"> /***<br /> * Wait for 30 second to see the changes has done on browser or not.<br /> */</span><br /> Thread.sleep(20000);<br /> <span style="color: blue;">element </span>= <span style="color: purple;">null</span>;<br /> <span style="color: blue;">driver</span>.close();<br /> </span></b><span style="font-weight: normal;"> <br /> } <br /><br />}</span><b><span style="font-weight: normal;"><br /></span></b></span> </span></h4>
<h4 style="text-align: left;">
<span style="color: magenta;">==============================================================================================</span></h4>
<h4 style="text-align: left;">
<span style="color: magenta;">Example of FluentWait in java .</span></h4>
<div style="text-align: left;">
<span style="color: magenta;"><br /></span></div>
<h4 style="text-align: left;">
<span style="color: magenta;"><span style="color: purple;">package </span>airtel;<br /><br /><span style="font-weight: normal;"><span style="color: purple;">import static </span><span style="color: black;">org.junit.Assert.*;</span><br /><br /><span style="color: purple;">import<span style="color: black;"> </span></span><span style="color: black;">java.util.List;</span><br /><span style="color: purple;">import<span style="color: black;"> </span></span><span style="color: black;">java.util.concurrent.TimeUnit;</span></span><span style="color: black;"><b><span style="font-weight: normal;"><br /></span></b></span></span></h4>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.jboss.netty.util.Timeout;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>java.util.NoSuchElementException;<br /><span style="color: purple;">import </span>java.util.concurrent.TimeUnit; </span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.junit.After;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.junit.Assert;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.junit.Before;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.junit.Test;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.openqa.selenium.By;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.openqa.selenium.WebDriver;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.openqa.selenium.WebElement;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"></span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.openqa.selenium.firefox.FirefoxDriver;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import</span> org.openqa.selenium.support.ui.FluentWait;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.openqa.selenium.support.ui.ExpectedConditions;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.openqa.selenium.support.ui.Select;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>org.openqa.selenium.support.ui.WebDriverWait;</span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><span style="color: purple;">import </span>com.google.common.base.Predicate; </span></b></span></span></div>
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"></span></b></span></span><br />
<h4 style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><br /><b><span style="color: purple;">public class</span> FluentWaitDemo <br />{</b><br /> WebDriver driver = <span style="color: purple;">null</span>;<br /> WebElement element = <span style="color: purple;">null</span>;<br /> String actualText = <span style="color: purple;">null</span>;<br /><br /> <b> @Before<br /> <span style="color: purple;">public void </span>setUp() <span style="color: purple;">throws </span>Exception <br /> {</b><br /> <span style="color: blue;">driver </span>= new FirefoxDriver();<br /> <span style="color: blue;">driver</span>.manage().window().maximize();<br /> <span style="color: blue;">driver</span>.get("<span style="color: blue;">http://www.airtel.in/mobile/prepaid/tariffs</span>");<br /> </span><b><span style="font-weight: normal;"> <b> }</b></span></b><span style="font-weight: normal;"> </span></b></span></span></h4>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"> <b>@Test</b></span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><b> <span style="color: purple;"> public void</span> test() </b></span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><b> {</b></span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><b> </b></span><span style="font-weight: normal;"> FluentWait<By> <span style="color: #e06666;">wait </span>= new FluentWait<By>(By.id("region"));</span></b></span></span></div>
<div style="text-align: left;">
<b><span style="color: magenta;"><span style="color: black;"><span style="font-weight: normal;"></span></span></span></b></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"> <span style="color: #e06666;">wait</span>.withTimeout(10, TimeUnit.<span style="color: blue;">SECONDS</span>);<br /> <span style="color: #e06666;">wait</span>.pollingEvery(1000, TimeUnit.<span style="color: blue;">MILLISECONDS</span>);<br /> <br /> wait.until(<span style="color: #e06666;">new </span>Predicate<By>() <br /> {<br /> <span style="color: purple;"> public boolean</span> apply(<span style="color: #e06666;">By </span>by) <br /> {<br /> <span style="color: purple;">try </span><br /> {<br /> <span style="color: purple;">return </span>driver.findElement(by).isDisplayed();<br /> } <br /> <span style="color: purple;">catch </span>(NoSuchElementException ex) <br /> {<br /> <span style="color: purple;">return false</span>;<br /> }<br /> }<br /> });<br /> <br /> Select <span style="color: #e06666;">changeRegion </span>= <span style="color: purple;">new </span>Select(<span style="color: blue;">driver</span>.findElement(By.id("<span style="color: blue;">region</span>")));<br /> <span style="color: #e06666;">List</span><WebElement> <span style="color: #e06666;">regionList </span>= changeRegion.getOptions();<br /> for (WebElement <span style="color: #e06666;">webElement </span>: <span style="color: #e06666;">regionList</span>) <br /> { <br /> if(<span style="color: #e06666;">webElement</span>.getText().toString().contains("<span style="color: blue;">Maharashtra</span>"))<br /> {<br /> <span style="color: #e06666;">webElement</span>.click(); <br /> }<br /> }<br /> </span><span style="font-weight: normal;"><b><br /> <br /> </b></span></b><span style="font-weight: normal;"> <span style="color: #3d85c6;"> /***<br /> * Wait to see the different plans availabe for maharashtra region.<br />
* We will check the label Tariffs plans that are available in
karnataka to Tariffs plans that are available in Maharashtra and Goa<br /> */</span></span><b><span style="font-weight: normal;"><b><br /></b></span></b></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><span style="font-weight: normal;"> FluentWait<By> <span style="color: #e06666;">wait </span>= new FluentWait<By>(By.id("<span style="color: blue;">fillCircleName</span>"));<br /> <span style="color: #e06666;">wait</span>.withTimeout(10, TimeUnit.<span style="color: blue;">SECONDS</span>);<br /> <span style="color: #e06666;">wait</span>.pollingEvery(1000, TimeUnit.<span style="color: blue;">MILLISECONDS</span>);<br /> <br /> wait.until(<span style="color: #e06666;">new </span>Predicate<By>() <br /> {<br /> <span style="color: purple;"> public boolean</span> apply(<span style="color: #e06666;">By </span>by) <br /> {<br /> <span style="color: purple;">try </span><br /> {<br /> <span style="color: purple;">return </span>driver.findElement(by).isDisplayed();<br /> } <br /> <span style="color: purple;">catch </span>(NoSuchElementException ex) <br /> {<br /> <span style="color: purple;">return false</span>;<br /> }<br /> }<br /> });</span></span></span></div>
<div style="text-align: left;">
<span style="color: magenta;"><span style="color: black;"><b><span style="font-weight: normal;"><br /> <span style="color: blue;">element </span>= <span style="color: blue;">driver</span>.findElement(By.id("<span style="color: #3d85c6;">fillCircleName</span>"));<br /> <span style="color: blue;">actualText </span>= <span style="color: blue;">element</span>.getText();<br /> System.<span style="color: blue;">out</span>.println(<span style="color: blue;">actualText</span>);<br /> <br /> Assert.assertEquals(<span style="color: #3d85c6;">"WebDriverWait run successfully", "Below are the tariff plans available in Maharashtra and Goa</span>", <span style="color: blue;">actualText</span>);<br /> <br /><b> }</b><br /><br /> <b> @After<br /> <span style="color: purple;"> public void</span> tearDown() <span style="color: purple;">throws </span>Exception <br /> {</b><br /> <span style="color: #3d85c6;"> /***<br /> * Wait for 30 second to see the changes has done on browser or not.<br /> */</span><br /> Thread.sleep(20000);<br /> <span style="color: blue;">element </span>= <span style="color: purple;">null</span>;<br /> <span style="color: blue;">driver</span>.close();<br /> </span></b><span style="font-weight: normal;"> <br /> } <br /><br />}</span></span></span></div>
<div style="text-align: left;">
<br /></div>
<h4 style="text-align: left;">
<span style="color: magenta;">Thread.Sleep(time):</span></h4>
<div style="text-align: left;">
This also comes under the Explicit time but the standard says instead of thread.Sleep(time) Use above defined class as "<span style="color: blue;">WebDriverwait</span>" and "<span style="color: blue;">FluentWait"</span>.</div>
<div style="text-align: left;">
<span style="color: magenta;">Thread.Sleep(time)</span> un-necessary creates / generates the delay in execution of your TestCase / testScript if the element is available within the time still <span style="color: magenta;">Thread.sleep(time)</span> will wait till the specified time. </div>
<div style="text-align: left;">
So we most of the time we don't know in how much amount of time an element is available,displayed or visible on the page so better to go with above defined class.</div>
<div style="text-align: left;">
but still in practical situation we have to use the <span style="color: magenta;">Thread.Sleep(time)</span>. But Usage of it should be minimal.<br />
<br />
<h3 style="text-align: left;">
<u>See Also: </u></h3>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank">1- Download file using Selenium webdriver with C#</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
2- <a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank">Upload file in Selenium WebDriver in java using Robot Class</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
3- <a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank">Implicit and explicit wait in selenium Webdriver</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
4- <a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank">Upload File Using Selenium WebdDriver in Java using AutoIt</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
5-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank">Upload a file using selenium web driver in c#</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
6-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank">Upload a file using selenium web driver in c# using AutoIt</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
7-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank">Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</a></div>
</div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com1tag:blogger.com,1999:blog-8770391591876702071.post-7666620521773887412015-06-09T05:33:00.001-07:002015-06-21T20:13:28.338-07:00Download file using Selenium webdriver C#<div dir="ltr" style="text-align: left;" trbidi="on">
<h3 style="text-align: left;">
<span style="color: magenta;">Scenario:</span></h3>
1- Download a PDf file.<br />
2- Store it on a specific Directory. In my case <span style="color: blue;">d:\Avinash\filename.pdf</span><br />
3- Read the Downloaded file using in C#<br />
4- Show the Contents of each page on the screen.<br />
<h3 style="text-align: left;">
<span style="color: magenta;">Introduction: </span></h3>
Download a Pdf file using selenium WebDriver. I have set the preferences in firefox browser to tell the browser which kind of file is going to handle and what action should take while downloading that file.<br />
<br />
<br />
Below example is for to dowmload the pdf file from google.com. But in my firefox their is an already integration of <span style="color: magenta;">IDM</span>(Internet Download Manager) with Mozilla. so whenever I will download that file the IDM's file download dialog is open.<br />
See below screenshot.<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ntfhjwfQ2SGrmgCvGxSC4WmjBUm8PlbNIFMEI9G4Lbfkk9ekNjjDDnFvyO7gnCcjFmjBDKIwZrJPKsJ6KVJSZgUKH-PeYxoS-1Qz-bM0n7vpxfcVpvKwnUQpZfdK1woJHtCRDa4Rnx8/s1600/Download_Dialog.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="325" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1ntfhjwfQ2SGrmgCvGxSC4WmjBUm8PlbNIFMEI9G4Lbfkk9ekNjjDDnFvyO7gnCcjFmjBDKIwZrJPKsJ6KVJSZgUKH-PeYxoS-1Qz-bM0n7vpxfcVpvKwnUQpZfdK1woJHtCRDa4Rnx8/s640/Download_Dialog.jpg" width="640" /></a></div>
<br />
<br />
<br />
So In my case to handle the IDM's file Download Dialog I have Used thirty party tool as <span style="color: magenta;">"AutoIt V3"</span> to handle windows Button or Control on Internet Download manager Dialog.<br />
<br />
<h3 style="text-align: left;">
<span style="color: magenta;">Prerequisite:</span></h3>
<div style="text-align: left;">
1-Visual Studio any version</div>
<div style="text-align: left;">
2- Install / Add <span style="color: magenta;">"ITextSharp.dll"</span> through the NuGet package in current project / Solution.</div>
<div style="text-align: left;">
3- AutoIt V3 Scripting tool.</div>
<div style="text-align: left;">
4- AutoIt Window Info.</div>
<div style="text-align: left;">
5- NUnit Testing framework.</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<span style="color: magenta;">Procedure:</span></h3>
<div style="text-align: left;">
1-Open visual Studio.</div>
<div style="text-align: left;">
2- <span style="color: blue;">Select File -> New project -> Select Test -> Select Unit Test.</span></div>
<div style="text-align: left;">
3- Give project Name as "DownloadPDFandreadPDF".</div>
<div style="text-align: left;">
4- Install "<span style="color: magenta;">itextSharp</span>" from Nuget. <span style="color: blue;"><u><b>see below ScreenShot.</b></u></span></div>
<div style="text-align: left;">
Select Tools menu-> <span style="color: blue;">select Library Package manager->Manage NuGet packages for Solution.</span></div>
<div style="text-align: left;">
5- Remove the Existing refernce of Unit Testing and add the reference of Nunit.</div>
<div style="text-align: left;">
<span style="color: red;"> using Microsoft.VisualStudio.TestTools.UnitTesting; - Remove It</span>. & </div>
<div style="text-align: left;">
Add using using NUnit.Framework;</div>
<div style="text-align: left;">
6 Add the respective references for selenium.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjePzDpyZzFv1Jj2o5Bdyw1_JlQIq6Kc9MZ99DsxpKF2TXB_ZjKWsPfBoRmvgy3k22O_oQgPO4ZVR827aDfl0ZYWnxim9SpS_IrJYAsjl1C67ihClW2Wigen9odDVzBGlIFV_GmQvNB2q0/s1600/Install_ItextSharp.dll_from_NUget.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="358" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjePzDpyZzFv1Jj2o5Bdyw1_JlQIq6Kc9MZ99DsxpKF2TXB_ZjKWsPfBoRmvgy3k22O_oQgPO4ZVR827aDfl0ZYWnxim9SpS_IrJYAsjl1C67ihClW2Wigen9odDVzBGlIFV_GmQvNB2q0/s640/Install_ItextSharp.dll_from_NUget.jpg" width="640" /></a></div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<span style="color: magenta;">Code :</span></h3>
<div style="text-align: left;">
<span style="color: blue;">using </span>System;<br />
<span style="color: blue;">using </span>OpenQA.Selenium;<br />
<span style="color: blue;">using </span>OpenQA.Selenium.Firefox;<br />
<span style="color: blue;">using </span>OpenQA.Selenium.Support.UI;<br />
<span style="color: blue;">using </span>NUnit.Framework;<br />
<span style="color: blue;">using </span>iTextSharp.text.pdf;<br />
<span style="color: blue;">using </span>iTextSharp.text.pdf.parser;<br />
<span style="color: blue;">using </span>System.IO;<br />
<span style="color: blue;">namespace </span>DownloadPDFandreadPDF<br />
{<br />
<span style="color: #3d85c6;"> [TestFixture]</span><br />
<span style="color: blue;">public class</span> <span style="color: #3d85c6;">DownloadPDFAndRead</span><br />
{<br />
<span style="color: #3d85c6;">IWebDriver </span>driver = <span style="color: blue;">null</span>;<br />
<span style="color: #3d85c6;">IWebElement </span>element = <span style="color: blue;">null</span>;<br />
<span style="color: #3d85c6;">FirefoxProfile </span>FProfile = <span style="color: blue;">null</span>;<br />
<span style="color: #3d85c6;">String </span>DownloadfilePath = "<span style="color: red;">d:\\Avinash</span>";<br />
<br />
<span style="color: #3d85c6;"> [SetUp]</span><br />
<span style="color: blue;"> public void</span> BeforeTest()<br />
{<br />
<span style="color: #3d85c6;">FirefoxProfile </span>profileSetUp = FirefoxProfilesetup<span style="color: #3d85c6;"></span>(DownloadfilePath);<br />
<br />
driver = <span style="color: blue;">new </span><span style="color: #3d85c6;">FirefoxDriver</span>(profileSetUp);<br />
driver.Manage().Timeouts().ImplicitlyWait(<span style="color: #3d85c6;">TimeSpan</span>.FromSeconds(10));<br />
driver.Navigate().GoToUrl("<span style="color: blue;">http://www.google.com</span>");<br />
<br />
}<br />
<span style="color: #3d85c6;"> [Test]</span><br />
<span style="color: blue;"> public void</span> TestDownloadPDFAndRead()<br />
{<br />
driver.FindElement(<span style="color: #3d85c6;">By</span>.Id("<span style="color: red;">lst-ib</span>")).SendKeys("<span style="color: red;">selenium webdriver practical guide pdf</span>");<br />
driver.FindElement(<span style="color: #3d85c6;">By</span>.XPath("<span style="color: red;">//button[@value='Search']</span>")).Click();<br />
<br />
<span style="color: #3d85c6;">WebDriverWait </span>wait = <span style="color: blue;">new </span><span style="color: #3d85c6;">WebDriverWait</span>(driver, <span style="color: #3d85c6;">TimeSpan</span>.FromSeconds(10));<br />
wait.Until(<span style="color: #3d85c6;">ExpectedConditions</span>.ElementIsVisible(<span style="color: #3d85c6;">By</span>.PartialLinkText("<span style="color: red;">Selenium WebDriver Practical </span></div>
<div style="text-align: left;">
<span style="color: red;"> Guide</span>")));<br />
<br />
driver.FindElement(<span style="color: #3d85c6;">By</span>.PartialLinkText("<span style="color: red;">Selenium WebDriver Practical Guide</span>")).Click();<br />
System.Threading.<span style="color: #3d85c6;">Thread</span>.Sleep(5000);<br />
<br />
<span style="color: #38761d;"> //In my case I have installed Internet Download Manager & it is configured with Firefox <br /> //so to handle internet download manager dialog I have used <b>Autoit </b>tool to handle it.</span><br />
<br />
System.Threading.<span style="color: #3d85c6;">Thread</span>.Sleep(5000);<br />
System.Diagnostics.<span style="color: #3d85c6;">Process</span>.Start("G:\\Autoit\\DownloadPDFFile.exe");<br />
<span style="color: #3d85c6;">Console</span>.WriteLine("<span style="color: red;">file Download Completed.....!</span>");<br />
<br />
ReadPDF("<span style="color: red;">d:\\Avinash\\9781782168850_Sample.pdf</span>");<br />
}<br />
<br />
<br />
<span style="color: #3d85c6;"> [TearDown]</span><br />
<span style="color: blue;"> public void</span> AfterTest()<br />
{<br />
element = <span style="color: blue;">null</span>; <br />
driver.Close();<br />
}<br />
<br />
/// <summary><br />
/// <span style="color: #6aa84f;">Set the preference in firefox. which kind of file(extension)you are downloading & how to handle </span></div>
<div style="text-align: left;">
<span style="color: #6aa84f;"> the download dialog.</span><br />
/// </summary><br />
/// <param name="DownloadfilePath"><span style="color: #6aa84f;">Specify the path where to keep the downloaded PDF </span></div>
<div style="text-align: left;">
<span style="color: #6aa84f;"> file</span>.</param><br />
/// <returns></returns><br />
<span style="color: blue;">public </span><span style="color: #3d85c6;">FirefoxProfile </span>FirefoxProfilesetup(<span style="color: #3d85c6;">String </span>DownloadfilePath)<br />
{<br />
FProfile = new <span style="color: #3d85c6;">FirefoxProfile</span>();<br />
FProfile.SetPreference(<span style="color: red;">"browser.download.folderList"</span>, 2);<br />
//profile.SetPreference(<span style="color: red;">"browser.download.manager.showWhenStarting"</span>, true);//added<br />
FProfile.SetPreference(<span style="color: red;">"browser.download.dir</span>", DownloadfilePath);<br />
FProfile.SetPreference(<span style="color: red;"><span style="color: black;">"</span>browser.helperApps.neverAsk.openFile<span style="color: black;">"</span></span>,<br />
<span style="color: red;"> "text/csv,application/x-msexcel,application/excel,application/x-excel,application</span></div>
<div style="text-align: left;">
<span style="color: red;"> /vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml<span style="color: black;">");</span></span><br />
FProfile.SetPreference(<span style="color: red;"><span style="color: black;">"</span>browser.helperApps.neverAsk.saveToDisk<span style="color: black;">",</span><br /> "text/csv,application/x-msexcel,application/excel,application/x-excel,application</span></div>
<div style="text-align: left;">
<span style="color: red;"> /vnd.ms-excel,image/png,image/jpeg,text/html,text/plain,application/msword,application/xml"</span>);<br />
<br />
<br />
FProfile.SetPreference(<span style="color: red;">"browser.helperApps.neverAsk.saveToDisk"</span>, "<span style="color: red;">application/pdf</span>");<br />
FProfile.SetPreference(<span style="color: red;">"browser.helperApps.alwaysAsk.force"</span>, false);<br />
FProfile.SetPreference(<span style="color: red;">"browser.download.manager.alertOnEXEOpen"</span>, false);<br />
FProfile.SetPreference("<span style="color: red;">browser.download.manager.focusWhenStarting</span>", false);<br />
FProfile.SetPreference("<span style="color: red;">browser.download.manager.useWindow</span>", false);<br />
FProfile.SetPreference("<span style="color: red;">browser.download.manager.showAlertOnComplete</span>", false);<br />
FProfile.SetPreference("<span style="color: red;">browser.download.manager.closeWhenDone</span>", false); </div>
<div style="text-align: left;">
FProfile.SetPreference("<span style="color: red;">browser.download.manager.showAlertOnComplete</span>", true);<span style="color: #38761d;"> //added alert </span></div>
<div style="text-align: left;">
<span style="color: #38761d;"> should show after completion</span><br />
<br />
<span style="color: blue;">return </span>FProfile;<br />
}<br />
<br />
/// <summary><br />
/// <span style="color: #38761d;">Read the contents of Downloaded .pdf file and prints on the screen</span><br />
/// </summary><br />
/// <param name="PDFFilePath"><span style="color: #6aa84f;">Path to the downloaded file</span></param><br />
<span style="color: blue;"> public void</span> ReadPDF(<span style="color: #0b5394;">String </span>PDFFilePath)<br />
{<br />
<span style="color: #3d85c6;">PdfReader </span>reader = new <span style="color: #3d85c6;">PdfReader</span>(PDFFilePath);<br />
<span style="color: #3d85c6;">String </span>PDFContents = <span style="color: #3d85c6;">PdfTextExtractor</span>.GetTextFromPage(reader, 1);<br />
<span style="color: #3d85c6;">Console</span>.WriteLine(<span style="color: red;">"File length:"</span>+ reader.FileLength);<br />
<span style="color: #3d85c6;">Console</span>.WriteLine(<span style="color: red;">"No. Of pages"</span>+reader.NumberOfPages);<br />
<br />
System.Text.<span style="color: #3d85c6;">StringBuilder </span>sb = new System.Text.<span style="color: #3d85c6;">StringBuilder</span>();<br />
<span style="color: #3d85c6;">ITextExtractionStrategy </span>its = new iTextSharp.text.pdf.parser.<span style="color: #3d85c6;">SimpleTextExtractionStrategy</span>();<br />
<br />
<span style="color: blue;">for </span>(<span style="color: blue;">int </span>i = 1; i < reader.NumberOfPages; i++)<br />
{<br />
sb.Clear();<br />
sb = sb.Append(<span style="color: #3d85c6;">PdfTextExtractor</span>.GetTextFromPage(reader, i, its));<br />
<span style="color: #3d85c6;">Console</span>.WriteLine("<span style="color: red;">Contents of Page{0}:{1}</span>",i, sb); <br />
}<br />
<span style="color: blue;">try</span><br />
{<br />
reader.Close();<br />
}<br />
<span style="color: blue;"> catch</span><br />
{<br />
<span style="color: #3d85c6;">Console</span>.WriteLine(<span style="color: red;">"Exception Occured while reading PDF File....!"</span>);<br />
}<br />
}<br />
<br />
}<br />
}</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<span style="color: magenta;">AutoIt Code:</span></h3>
<div style="text-align: left;">
1- Open SciTE editor.</div>
<div style="text-align: left;">
2- Open the AutoIt Window Info </div>
<div style="text-align: left;">
3- Drag and Drop the Finder tool on control which we required to handle.</div>
<div style="text-align: left;">
like downlad path and start button on IDM download dialog.</div>
<div style="text-align: left;">
4- We will get the information as title , text, ControlId etc. see the below screen shot.</div>
<div style="text-align: left;">
5- Write / paste the below code in SCiTE editor and save as .au3 extension.</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<span style="color: magenta;">AutoIt Code:</span></h3>
<div style="text-align: left;">
<span style="color: blue;">ControlFocus</span>(<span style="color: red;">"Download File Info","","Edit4"</span>);<br />
<span style="color: blue;">ControlSetText</span>(<span style="color: red;">"Download File Info","","Edit4","d:\Avinash\Avinash.pdf"</span>);<br />
<span style="color: blue;">ControlClick</span>(<span style="color: red;">"Download File Info","","Button1"</span>);</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
</div>
<div style="text-align: left;">
<br /></div>
<h3 style="text-align: left;">
<span style="color: magenta;">Excecute:</span> </h3>
<div style="text-align: left;">
1- Compile the whole project in visual studio.</div>
<div style="text-align: left;">
2- Open the Nunit Application from start menu.</div>
<div style="text-align: left;">
3- Select file -> Open project -> go to the path where current project .dll is located.</div>
<div style="text-align: left;">
4- Select the .DLL having same name as your current Project in this case <span style="color: magenta;">"DownloadPDFandreadPDF.dll"</span></div>
<div style="text-align: left;">
5- Click on run button for execution.</div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<span style="color: red;"><i><b>Note: using thread.Sleep() will cause delay in execution. Standard says don't use excessive. User WebdriverWait, defaultWait etc....</b></i></span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br />
<br />
<h3 style="text-align: left;">
<u><span style="color: blue;">See Also below Link:</span></u></h3>
<div style="text-align: left;">
<span style="color: cyan;"><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank">1- Download file using Selenium webdriver C#</a></span></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank">2-Implicit and explicit wait in selenium</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank">3-Upload file in Selenium WebDriver in java using Robot Class</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank">4-Upload File Using Selenium WebdDriver in Java using AutoIt</a> </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
5-<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank">Upload a file using selenium web driver in c#</a></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<a href="https://www.blogger.com/6-%20%20http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank">6-Upload a file using selenium web driver in c# using AutoIt</a> </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank">7-Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</a> </div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
<div style="text-align: left;">
<br /></div>
</div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com5tag:blogger.com,1999:blog-8770391591876702071.post-4757484401042806062015-06-07T06:37:00.001-07:002015-06-21T20:13:56.475-07:00Upload file in Selenium WebDriver in java using Robot Class <div dir="ltr" style="text-align: left;" trbidi="on">
<br />
In this example the selenium is not it self capable to handling the "Choose File" button which is located on link: http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N<br />
<br />
So we can use <b><span style="color: magenta;">Point Position Tool</span></b> to read the X & Y coordinate of "choose file" button. Then we will pass these X & Y coordinate to Robot Class in java & remaining part will taken care by Robot class.<br />
<br />
To Download Point Position toll click on: http://freewareapp.com/point-position_download/ this click.<br />
<br />
<br />
<h3 style="text-align: left;">
Requirements:</h3>
<br />
<ul style="text-align: left;">
<li>Eclipse IDE</li>
<li>JUnit</li>
<li>Selenium Standlone_2.40.0_server.jar</li>
<li>Point Position Tool / Software</li>
</ul>
<div>
<br /></div>
<div>
First we use the Point position Tool to compute the X & Y coordinate of "Choose file" button. Because selenium WebDriver is not capable to handle this button or even identify. Because its attribute type="file".</div>
<div>
<br /></div>
<div>
See the screenshot of it.</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaPSS7x-jiKF0j9ZJk3sOMcZXrOALSKtr3sPHhgp0NJi6K7uf6d_dW_c_gQhD7oqwS3cgHb4ai3xioGVO8I-1zkl9QNW128BpUbEhBIguzKhLLmHVQ7UUiPFKZTYyAvfCiOowxGJQAbJE/s1600/choosefile.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="318" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaPSS7x-jiKF0j9ZJk3sOMcZXrOALSKtr3sPHhgp0NJi6K7uf6d_dW_c_gQhD7oqwS3cgHb4ai3xioGVO8I-1zkl9QNW128BpUbEhBIguzKhLLmHVQ7UUiPFKZTYyAvfCiOowxGJQAbJE/s640/choosefile.jpg" width="640" /></a></div>
<div>
<br />
<br /></div>
<div>
below is the screen shot for How to use the Point Position tool. To compute X & Y coordinate of choose File button on Naukri portal.</div>
<div>
<br /></div>
<div>
See Screen shot for It.</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhGkkfFN7ys3-jUtHAriYCs09uOCLzNapzndEGvoKY78ZBxsB6idWaDk5cSriG7E_7yQIN_ChV7QwxLtQ-cTD9ob_infZuaqLZII3T3jNgd1uBHi_jT6GPMvr1nYRnOYDQOBey8YD6xWI/s1600/browse_Button.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhhGkkfFN7ys3-jUtHAriYCs09uOCLzNapzndEGvoKY78ZBxsB6idWaDk5cSriG7E_7yQIN_ChV7QwxLtQ-cTD9ob_infZuaqLZII3T3jNgd1uBHi_jT6GPMvr1nYRnOYDQOBey8YD6xWI/s640/browse_Button.jpg" width="640" /></a></div>
<div>
<br /></div>
<div>
<b><span style="color: magenta;">Next:</span></b></div>
<div>
<b><span style="color: magenta;"><br /></span></b></div>
<div>
Open Eclipse IDE</div>
<div>
Create a java Project</div>
<div>
Create a package under the SRC Folder</div>
<div>
Create a TestCase under the package</div>
<div>
Write the below code in currently created TestCase.</div>
<div>
<br /></div>
<div>
<b>Code:</b></div>
<div>
<b><br /></b></div>
<div>
<b><br /></b></div>
<div>
<div>
<b><span style="color: #990000;">package </span>naukri;</b></div>
<div>
<br /></div>
<div>
<span style="color: #990000;">import </span>static org.junit.Assert.*;</div>
<div>
<br /></div>
<div>
<span style="color: #990000;">import </span>java.awt.Robot;</div>
<div>
<span style="color: #990000;">import </span>java.awt.Toolkit;</div>
<div>
<span style="color: #990000;">import </span>java.awt.datatransfer.StringSelection;</div>
<div>
<span style="color: #990000;">import </span>java.awt.event.InputEvent;</div>
<div>
<span style="color: #990000;">import </span>java.awt.event.KeyEvent;</div>
<div>
<span style="color: #990000;">import </span>java.io.File;</div>
<div>
<span style="color: #990000;">import </span>java.util.concurrent.TimeUnit;</div>
<div>
<br /></div>
<div>
<span style="color: #990000;">import </span>org.junit.After;</div>
<div>
<span style="color: #990000;">import </span>org.junit.Before;</div>
<div>
<span style="color: #990000;">import </span>org.junit.Test;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.By;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.JavascriptExecutor;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.Point;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.WebDriver;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.WebElement;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.chrome.ChromeDriver;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.chrome.ChromeOptions;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.firefox.FirefoxBinary;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.firefox.FirefoxDriver;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.ie.InternetExplorerDriver;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.interactions.Actions;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.remote.DesiredCapabilities;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.server.browserlaunchers.FirefoxLauncher;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.support.ui.ExpectedConditions;</div>
<div>
<span style="color: #990000;">import </span>org.openqa.selenium.support.ui.WebDriverWait;</div>
<div>
<br /></div>
<div>
<b><span style="color: #990000;">public class</span> FileUploadOnNaukri </b></div>
<div>
<b>{</b></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"><b> </b></span>WebDriver <span style="color: blue;">driver </span>= null;</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>WebElement <span style="color: blue;">element </span>= null;<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
</div>
<div>
Robot <span style="color: blue;">robot </span>= null;</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">int </span>x = 0;</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">int </span>y= 0;</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>@Before</b></div>
<div>
<b><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #990000;">public void</span> setUp()</b></div>
<div>
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>{</b></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>File <span style="color: blue;">file </span>= new File(<span style="color: blue;">"G:\\Selenium\\All_Jars\\chromeDriver.exe"</span>);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>System.setProperty(<span style="color: blue;">"webdriver.chrome.driver"</span>, file.getAbsolutePath());</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">driver </span>= new ChromeDriver();</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">driver</span>.manage().window().maximize();</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>}</b></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>@Test</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><b><span style="color: #990000;">public void</span> testChooseFileButton() throws Exception</b></div>
<div>
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>{</b></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">driver</span>.get(<span style="color: blue;">"http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N"</span>);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">Thread</span>.sleep(5000);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>((JavascriptExecutor)<span style="color: blue;">driver</span>).executeScript("<span style="color: blue;">window.scrollTo</span>(0,700);");</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span> <span style="color: blue;">robot </span>= new Robot();</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">x </span>= 529; <span style="color: #38761d;">// X coordinates of choosefile control,Values read from Point Position tool </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">y </span>= 339; <span style="color: #38761d;">// v coordinates of choosefile control,Values read from Point Position tool</span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot</span>.mouseMove(x, y);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot</span>.mousePress(InputEvent.<span style="color: blue;">BUTTON1_DOWN_MASK</span>);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot</span>.mouseRelease(InputEvent.<span style="color: blue;">BUTTON1_DOWN_MASK</span>);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot</span>.mousePress(InputEvent.<span style="color: blue;">BUTTON1_DOWN_MASK</span>);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot</span>.mouseRelease(InputEvent.<span style="color: blue;">BUTTON1_DOWN_MASK</span>);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot </span>= null;</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">Thread</span>.sleep(5000);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #38761d;">//copy the file path in clipboard</span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span>StringSelection <span style="color: blue;">ss </span>= new StringSelection("<span style="color: blue;">d:\\Avinash.jpg</span>");</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span> Toolkit.getDefaultToolkit().getSystemClipboard().setContents(ss,null);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span> </div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span> <span style="color: blue;">robot </span>= new Robot();</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot</span>.keyPress(KeyEvent.<span style="color: blue;">VK_ENTER</span>); <span style="color: #38761d;">//Press Enter key in file name text box</span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">robot</span>.keyRelease(KeyEvent.<span style="color: blue;">VK_ENTER</span>); <span style="color: #38761d;">// Release Enter key</span></div>
<div>
<span style="color: blue;">robot</span>.keyPress(KeyEvent.<span style="color: blue;">VK_CONTROL</span>); <span style="color: #38761d;">// Press Control Key</span></div>
<div>
<span style="color: blue;">robot</span>.keyPress(KeyEvent.<span style="color: blue;">VK_V</span>); <span style="color: #38761d;">// Press V- button i.e. paste</span></div>
<div>
<span style="color: blue;">robot</span>.keyRelease(KeyEvent.<span style="color: blue;">VK_V</span>); <span style="color: #38761d;">// Release V- Key </span></div>
<div>
<span style="color: blue;">robot</span>.keyRelease(KeyEvent.<span style="color: blue;">VK_CONTROL</span>);<span style="color: #38761d;"> //Release Control Key </span></div>
<div>
<span style="color: blue;">robot</span>.keyPress(KeyEvent.<span style="color: blue;">VK_ENTER</span>); /<span style="color: #38761d;">/ Press final Enter Key</span></div>
<div>
<span style="color: blue;">robot</span>.keyRelease(KeyEvent.<span style="color: blue;">VK_ENTER</span>); <span style="color: #38761d;">//Release Enter Key</span></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span> Thread.sleep(7000);</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>}</b></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span></div>
<div>
@After</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><b><span style="color: #990000;">public void</span> tearDown()</b></div>
<div>
<span class="Apple-tab-span" style="font-weight: bold; white-space: pre;"> </span><b>{</b></div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">driver</span>.close();</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">element </span>= null;</div>
<div>
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>}</b></div>
<div>
<b>}</b></div>
<div style="font-weight: bold;">
<br />
<br />
<br />
<br />
<h3 style="text-align: left;">
<u><span style="color: #3d85c6;">See also below links:</span></u></h3>
<div style="text-align: left;">
<a href="mailto:http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">1- Download file using Selenium webdriver C#</span></span></a></div>
<div style="text-align: left;">
<span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">2-Implicit and explicit wait in selenium</span></span></a></div>
<div style="text-align: left;">
<span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">3-Upload file in Selenium WebDriver in java using Robot Class</span></span></a></div>
<div style="text-align: left;">
<span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">4-Upload File Using Selenium WebdDriver in Java using AutoIt </span></span></a></div>
<div style="text-align: left;">
<span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></div>
<div style="text-align: left;">
<a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">5-</span></span></a><a href="https://www.blogger.com/null" target="_blank">Upload a file using selenium web driver in c#</a></div>
<div style="text-align: left;">
<span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></div>
<div style="text-align: left;">
<a href="https://www.blogger.com/6-%20%20http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;"></span></span></a><a href="https://www.blogger.com/null" target="_blank">6-Upload a file using selenium web driver in c# using AutoIt</a> </div>
<div style="text-align: left;">
<span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></div>
<div style="text-align: left;">
<span style="color: #3d85c6;"><span style="font-weight: normal;"><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank">7-Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</a> </span></span></div>
<div style="text-align: left;">
<br /></div>
</div>
</div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com1tag:blogger.com,1999:blog-8770391591876702071.post-37614255584756444352015-06-07T05:25:00.002-07:002015-06-21T20:14:43.471-07:00Upload File Using Selenium WebdDriver in Java using AutoIt<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
<b><span style="color: magenta;">Prerequisite:</span></b></h2>
<br />
<ol style="text-align: left;">
<li><span style="color: #e06666;">Eclipse IDE</span></li>
<li><span style="color: #e06666;">Point Position Tool</span></li>
<li><span style="color: #e06666;">Autoit V3</span></li>
<li><span style="color: #e06666;">AutoIt window info</span></li>
</ol>
<br />
<br />
Selenium is not able to identify the element or "Browse" button to click.<br />
Example:<br />
<span style="background-color: #c27ba0;"><input name="BROWSECV" id="browsecv" size="37"> </input></span><br />
<span style="background-color: white;"><b>or</b></span><br />
<br />
you can go to below link and inspect the browse button.<br />
<b> Link:</b> <span style="color: blue;">http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N</span><br />
<br />
<b>or</b> see the screen shot to know more<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7uFyQPO5dM6mygho5vqFoE_ZwNMKUsaUmIQrpbSS20X76waRViEZRy4J9u483FOFYtyPs6pCsepB6kXzJYwrbqkHn80hvxcd46Lpbju8uhmcDFjOoL0V-doniFPJBksXkBG-1FV0i4l8/s1600/Naukri_browse_Button.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="338" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg7uFyQPO5dM6mygho5vqFoE_ZwNMKUsaUmIQrpbSS20X76waRViEZRy4J9u483FOFYtyPs6pCsepB6kXzJYwrbqkHn80hvxcd46Lpbju8uhmcDFjOoL0V-doniFPJBksXkBG-1FV0i4l8/s640/Naukri_browse_Button.jpg" width="640" /></a></div>
<br />
<br />
To handle such situation in Selenium we have to use third Party Tools such as Point Position, Autoit etc...<br />
<br />
<br />
Below is the example to handle above "Browse" button from above link.<br />
<br />
First we can create a file in Autoit v3 to handle browse button.<br />
open the SCiETE Script Editor<br />
write the below code into it.<br />
<br />
<b><span style="color: magenta;">Code:</span></b><br />
ControlFocus(<span style="color: red;">"Open","","Edit1"</span>)<br />
ControlSetText(<span style="color: red;">"Open","","Edit1","D:\Avinash\FileUpload.txt"</span>)<br />
ControlClick(<span style="color: red;">"Open","","Button1"</span>)<br />
<br />
<br />
<ul style="text-align: left;">
<li><b>Save</b> above file named as - N<b>aukriFileUpload.au3</b></li>
<li><b>Go to file stored location and compile it.</b></li>
<li><b>it will produces the NaukriFileUpload.exe</b></li>
</ul>
<br />
<br />
The parameters name "Open", "Edit1" , "Button1" in above code has been inspect it by using Autoit Window info tool.<br />
We drag The option <b>"Finder tool"</b> from <b>Autoit window info</b> to <b>"File Name"</b> text box then <b>"open" </b>button to read Title. class &Instance parameter information of each control on OpenfileDialog Window popup.<br />
because we need these parameter information to AutoIt functions such as ControlFocus, ControlSettext etc...<br />
<br />
See below screen shot to know more details:<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4BoWxYM8F9rVD7o0MpZqSap7_jDpElTO34_V7dPGRU0BcG5fk9G7ThbZls46MaBBvl-N437RaV5TqNUdNzFedeqH_pjwi0bDH-KdoR0a2KUru_j8sgNFFBFkzXdsTfqQu0hi4o-MJjTg/s1600/TextBox_Window_info.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj4BoWxYM8F9rVD7o0MpZqSap7_jDpElTO34_V7dPGRU0BcG5fk9G7ThbZls46MaBBvl-N437RaV5TqNUdNzFedeqH_pjwi0bDH-KdoR0a2KUru_j8sgNFFBFkzXdsTfqQu0hi4o-MJjTg/s640/TextBox_Window_info.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8q109Sebe90AREbyfm3jWvwRRxS0lVjGnqWBmTocvW9FOUpHMa22WiwoXfq7wKzqbgbndSfXlOVIO_Zc9KfRtD1C3wgp5j3h17CzAo8Xm8uuPBbfKHSBHyUQ5edDOSaZqWrKS5rIEVY8/s1600/Open_button_Window_info.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh8q109Sebe90AREbyfm3jWvwRRxS0lVjGnqWBmTocvW9FOUpHMa22WiwoXfq7wKzqbgbndSfXlOVIO_Zc9KfRtD1C3wgp5j3h17CzAo8Xm8uuPBbfKHSBHyUQ5edDOSaZqWrKS5rIEVY8/s640/Open_button_Window_info.jpg" width="640" /></a></div>
<br />
<h3 style="text-align: left;">
<b><span style="color: magenta;">Next:</span></b></h3>
<b><span style="color: #e69138;">Point Position:</span></b><br />
<b> </b>we use point position tool to identify the X & Y coordinate of Browse button from Naukri.com or above link.<br />
then we will click it on that X,Y coordinate by using javas robot class.<br />
<b><br /></b>
<b>See the screen shot, how to use Point Position tool</b><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxgeKzv94gPAodqiR0wpqfLultZv9aqTh2_oN2GazIikcbrXhETSIpL90WYMJUsRHhSKOLw8at_qes02wrofNEG-zPK4jh5V2XynNTSB_49dSa36Bs_8CqhC4foEa2y9H0JdpBTliWCWQ/s1600/x_y_cordinate_of_open_Button.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhxgeKzv94gPAodqiR0wpqfLultZv9aqTh2_oN2GazIikcbrXhETSIpL90WYMJUsRHhSKOLw8at_qes02wrofNEG-zPK4jh5V2XynNTSB_49dSa36Bs_8CqhC4foEa2y9H0JdpBTliWCWQ/s640/x_y_cordinate_of_open_Button.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaYbkDeSNF_KCxvfsoyK8fALcYthhdBq7XePiIg8KBCMUol1gybcKvGpz8KsPcAQ0rVV709CVSyDgmFEteNI-R4wXKDLpUGYfpmZV9GXGRiWTrjUGwsn6XNdsslqVK57C7SHZbuay4vpM/s1600/browse_Button.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjaYbkDeSNF_KCxvfsoyK8fALcYthhdBq7XePiIg8KBCMUol1gybcKvGpz8KsPcAQ0rVV709CVSyDgmFEteNI-R4wXKDLpUGYfpmZV9GXGRiWTrjUGwsn6XNdsslqVK57C7SHZbuay4vpM/s640/browse_Button.jpg" width="640" /></a></div>
<b><br /></b>
<br />
<h3 style="text-align: left;">
<b><span style="color: magenta;">Next:</span></b> </h3>
Open Eclipse IDE<br />
Create a Java project<br />
Create a package under Src folder.<br />
Create a Testcase<br />
write the below code in that TestCase<br />
<br />
<span style="color: #990000;">package </span>fileupload;<br />
<span style="color: #990000;">import </span>static org.junit.Assert.*;<br />
<span style="color: #990000;">import </span>java.awt.AWTException;<br />
<span style="color: #990000;">import </span>java.awt.Robot;<br />
<span style="color: #cc0000;">import </span>java.awt.event.InputEvent;<br />
<span style="color: #cc0000;">import </span>java.io.File;<br />
<span style="color: #990000;">import </span>java.io.IOException;<br />
<span style="color: #990000;">import </span>org.junit.After;<br />
<span style="color: #990000;">import </span>org.junit.Before;<br />
<span style="color: #990000;">import </span>org.junit.Test;<br />
<span style="color: #990000;">import </span>org.openqa.selenium.JavascriptExecutor;<br />
<span style="color: #990000;">import </span>org.openqa.selenium.WebDriver;<br />
<span style="color: #990000;">import </span>org.openqa.selenium.WebElement;<br />
<span style="color: #990000;">import </span>org.openqa.selenium.chrome.ChromeDriver;<br />
im<span style="color: #990000;">p</span>ort org.openqa.selenium.chrome.ChromeOptions;<br />
<span style="color: #990000;">import </span>org.openqa.selenium.firefox.FirefoxDriver;<br />
<br />
<b><span style="color: #990000;">public class</span> FileUpload </b><br />
<b>{</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>WebDriver <span style="color: blue;">driver </span>= <span style="color: #990000;">null</span>;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>WebElement <span style="color: blue;">element </span>= <span style="color: #990000;">null</span>;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>JavascriptExecutor <span style="color: blue;">js </span>= <span style="color: #990000;">null</span>;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>@Before</b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>public void setUp() <span style="color: #990000;">throws </span>Exception </b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>{</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>driver = new FirefoxDriver();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>driver.manage().window().maximize();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>}</b><br />
<span class="Apple-tab-span" style="white-space: pre;"><b> </b></span><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>@Test</b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #990000;">public void</span> test() <span style="color: #990000;">throws </span>AWTException, InterruptedException, IOException </b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>{</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">driver</span>.get("<span style="color: blue;">http://my.naukri.com/manager/createacc2.php?othersrcp=5424&wExp=N&id=</span><span style="color: #0b5394;">"</span>);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Thread.sleep(5000);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>((JavascriptExecutor)<span style="color: #0b5394;">driver</span>).executeScript(<span style="color: #0b5394;">"window.scrollTo(0,700)"</span>);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #990000;">int </span>x = 537;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #990000;">int </span>y = 331;<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Robot r = <span style="color: #990000;">new </span>Robot();<br />
<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>r.mouseMove(x, y);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>r.mousePress(InputEvent.<span style="color: #3d85c6;">BUTTON1_DOWN_MASK</span>);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>r.mouseRelease(InputEvent.<span style="color: #3d85c6;">BUTTON1_DOWN_MASK</span>);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>r.mouseMove(545, 345);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>r.mousePress(InputEvent.<span style="color: #3d85c6;">BUTTON1_DOWN_MASK</span>);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>r.mouseRelease(InputEvent.<span style="color: #3d85c6;">BUTTON1_DOWN_MASK</span>);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Thread.sleep(3000);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Runtime.getRuntime().exec("<span style="color: blue;">G:\\Autoit\\NaukriFileUpload.exe</span>");<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span> <span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>}</b><br />
<b><br /></b>
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>@After</b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: #990000;">public void</span> tearDown() <span style="color: #990000;">throws </span>Exception </b><br />
<b><span class="Apple-tab-span" style="white-space: pre;"> </span>{</b><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">driver</span>.close();<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><span style="color: blue;">element </span>= <span style="color: #990000;">null</span>;<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><b>}</b><span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<br />
}<br />
<div>
<br /></div>
<br />
<br />
<h3 style="text-align: left;">
<span style="color: magenta;">See Also Below Links:</span></h3>
<div style="text-align: left;">
<b><a href="mailto:http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">1- Download file using Selenium webdriver C#</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">2-Implicit and explicit wait in selenium</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">3-Upload file in Selenium WebDriver in java using Robot Class</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">4-Upload File Using Selenium WebdDriver in Java using AutoIt </span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="https://www.blogger.com/null" target="_blank"><span style="font-weight: normal;">5-</span></a></b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">Upload a file using selenium web driver in c#</a></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<a href="https://www.blogger.com/6-%20%20http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">6-Upload a file using selenium web driver in c# using AutoIt</a><b> </b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b>
</b><span style="color: #3d85c6;"><span style="font-weight: normal;"><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank"><span style="color: #3d85c6;">7-Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</span></a> </span></span></div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com17tag:blogger.com,1999:blog-8770391591876702071.post-90153367467843203102015-06-07T03:13:00.001-07:002015-06-21T20:15:08.251-07:00Upload a file using selenium web driver in c# <div dir="ltr" style="text-align: left;" trbidi="on">
<h3 class="r" style="text-align: center;">
</h3>
<div class="r" style="text-align: left;">
selenium can not identify the Input tag having attribute as
file. Also selenium is not able to handle windows popup like Open File
Dialog.</div>
<div class="r" style="text-align: left;">
<span style="color: blue;">Ex: </span></div>
<div class="r" style="text-align: left;">
<span style="color: blue;"><input type="file" id="browse1" name="browse"> </file></span> </div>
<div class="r" style="text-align: left;">
So To handle such kind of situation in selenium we have to use third party tools like Autoit, Point Position etc....</div>
<h3 class="r">
Prerequisite/Requirements:</h3>
<ol style="text-align: left;">
<li><h4 class="r" style="text-align: left;">
<span style="color: #e06666;">Visual Studio</span></h4>
</li>
<li><h4 class="r" style="text-align: left;">
<span style="color: #e06666;">NUnit</span>: Testing Framework.</h4>
</li>
<li><h4 class="r" style="text-align: left;">
<span style="color: #e06666;">Point Position software / Tool: </span>To find the X and Y coordinate of "Browse" Button. <span style="color: #e06666;"> </span></h4>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><b><span style="color: red;">point Position Tool: download it from this link:</span></b> <span style="color: blue;">http://freewareapp.com/point-position_download/</span></span></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><br /></span></div>
<div class="r" style="text-align: left;">
<b><span style="color: #e06666;">Point Position Tool:</span></b></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"> <span style="color: black;"> It is used to to find the x & y coordinate of any control with respect to scree resolution.</span></span></div>
<div class="r" style="text-align: left;">
It has four corner keep any corner on button or any control whose x & Y coordinates you want to find and click it on corner. it will shows the x and y coordinate of it. </div>
<div class="r" style="text-align: left;">
<b>see in below screen shot</b>.</div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><span style="color: black;">It shows the x & Y coordinate of Open button by using <b><span style="color: blue;">Point Position Tool</span></b> which is present of OpenFileDialog Window. </span></span></div>
<div class="r" style="text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn8EWJ78TUeQ75DpUVa37cRksuTE9IkCtWFQIcSU08fYgHNT4pOiE9sZ9_m9eZAeBqr-D_LDq4oCYV2xD_24Pt404Hp1dBXcO-t_TEH9Hg1_7RwEIbPFcxNQrEn4kGggl6EKtC18iFqnE/s1600/x_y_cordinate_of_open_Button.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjn8EWJ78TUeQ75DpUVa37cRksuTE9IkCtWFQIcSU08fYgHNT4pOiE9sZ9_m9eZAeBqr-D_LDq4oCYV2xD_24Pt404Hp1dBXcO-t_TEH9Hg1_7RwEIbPFcxNQrEn4kGggl6EKtC18iFqnE/s640/x_y_cordinate_of_open_Button.jpg" width="640" /></a></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><br /></span></div>
<div class="r" style="text-align: left;">
<br /></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><span style="color: black;"><span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>NUnit.Framework;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Chrome;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Firefox;<br /><span style="color: blue;">using </span>OpenQA.Selenium;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Support.UI;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Support;<br /><span style="color: blue;">using </span>System.Threading;<br /><span style="color: blue;">using </span>System.Windows;<br /><span style="color: blue;">using </span>System.Windows.Forms;<br /><span style="color: blue;">using </span>System.Runtime.InteropServices;<br /><span style="color: blue;">using </span>System.IO;<br /><br /><span style="color: blue;">namespace </span></span></span><span style="color: #e06666;"><span style="color: black;">UploadingFileOnNaukri<br />{<br /> <b> [TestFixture] <br /> <span style="color: blue;"> public class</span> UploadingFile</b><br /> {<br /> <span style="color: #3d85c6;">IWebDriver </span>driver = <span style="color: blue;">null</span> ;<br /> <span style="color: #3d85c6;">IWebElement </span>element = <span style="color: blue;">null </span>;<br /> <span style="color: #3d85c6;">ChromeOptions </span>options = <span style="color: blue;">null </span>;<br /> <br /> <b> <span style="color: #3d85c6;">[SetUp]</span><br /> <span style="color: blue;"> public void</span> SetUp()</b><br /> {<br /> <span style="color: #6fa8dc;">options </span>= <span style="color: blue;">new </span>ChromeOptions();<br /> <span style="color: #6fa8dc;">options</span>.AddArgument( " <span style="color: red;">start-maximized </span>" );<br /> <span style="color: #6fa8dc;">driver </span>= <span style="color: blue;">new </span>ChromeDriver("<span style="color: red;">G:\\Selenium_Csharp\\Jar\\chromedriver_win32</span>", options);<br /> <span style="color: #6fa8dc;">driver</span>.Navigate().GoToUrl("<span style="color: blue;">http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N</span>");<br /> }<br /><br /> <b> [Test]<br /> <span style="color: blue;"> public void </span>TestUploadingFileMethod()</b><br /> {<br /> <span style="color: #6fa8dc;">Thread</span>.Sleep(300);<br /> ((<span style="color: #6fa8dc;">IJavaScriptExecutor</span>)driver).ExecuteScript("<span style="color: red;"> window.scrollTo(0,600) ; </span>" ) ;<br /> <br /> <span style="color: #38761d;">//explicitly write the X , Y coordinate of Browse button on Naukri by using Point Position Tool.</span><br /> <span style="color: #3d85c6;">Thread</span>.Sleep(5000);<br /> <span style="color: blue;">int </span>x = 529;<br /> <span style="color: blue;">int </span>y = 339;<br /> <span style="color: #3d85c6;">MouseEvents</span>.LeftMouseClick(x, y);<br /> <br /> <span style="color: #3d85c6;">MouseEvents</span>.LeftMouseClick(x, y);<br /> <span style="color: #3d85c6;">Thread</span>.Sleep(2000);<br /><br /> <span style="color: #38761d;">//click on d-drive</span><br /> <span style="color: #3d85c6;">MouseEvents</span>.LeftMouseClick(491, 401);<br /> <br /><span style="color: #38761d;"> //click on Avinash folder which is present in D:\ drive.</span><br /> <span style="color: #3d85c6;">Thread</span>.Sleep(3000);<br /> <span style="color: #3d85c6;">MouseEvents</span>.LeftMouseClick(616, 243);<br /><br /><span style="color: #38761d;"> //click on Open button of File Dialog</span><br /> <span style="color: #6fa8dc;">Thread</span>.Sleep(3000);<br /> <span style="color: #6fa8dc;">MouseEvents</span>.LeftMouseClick(886,552);<br /><br /> <span style="color: #38761d;"> //Now select the file name FileUpload.txt</span><br /> <span style="color: #6fa8dc;">Thread</span>.Sleep(3000);<br /> <span style="color: #6fa8dc;">MouseEvents</span>.LeftMouseClick(623,241);<br /><br /> <span style="color: #38761d;"> //Now finally click on open Button to open / upload the selected file.</span><br /> <span style="color: #6fa8dc;">Thread</span>.Sleep(3000);<br /> <span style="color: #6fa8dc;">MouseEvents</span>.LeftMouseClick(886,552);<br /> <span style="color: #6fa8dc;">Thread</span>.Sleep(7000);<br /> <br /> }<br /><br /> <span style="color: #6fa8dc;">[TearDown]</span><br /> <span style="color: blue;"> public void</span> TearDown()<br /> {<br /> element = <span style="color: blue;">null</span>;<br /> driver.Quit();<br /> }<br /> }<br />}</span></span></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><br /></span></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><br /></span></div>
<div class="r" style="text-align: left;">
<span style="color: blue;">Add another File in existing project</span></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><span style="color: blue;">Right Click on project -> Add new class -> Name as MouseEvents.cs</span></span></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;">Write the below code into it:</span></div>
<div class="r" style="text-align: left;">
<b><span style="color: #e06666;"><br /></span></b></div>
<div class="r" style="text-align: left;">
<span style="color: #e06666;"><span style="color: black;"><b><span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>System.Collections.Generic;<br /><span style="color: blue;">using </span>System.Linq;<br /><span style="color: blue;">using </span>System.Text;<br /><span style="color: blue;">using </span>System.Threading.Tasks;<br /><span style="color: blue;">using </span>System.Windows.Forms;<br /><span style="color: blue;">using </span>System.Drawing;</b><br /><br /><b><span style="color: blue;">namespace </span>UploadingFileOnNaukri</b><br />{<br /><b> <span style="color: blue;">class </span>MouseEvents</b><br /> {<br /> <span style="color: blue;">private const</span> UInt32 MOUSEEVENTF_LEFTDOWN = 0x0002;<br /> <span style="color: blue;"> private const</span> UInt32 MOUSEEVENTF_LEFTUP = 0x0004;<br /> [System.Runtime.InteropServices.<span style="color: #3d85c6;">DllImport</span>("<span style="color: red;">user32.dll</span>")]<br /> <span style="color: blue;">private static extern void</span> mouse_event(<span style="color: blue;">uint </span>dwFlags, <span style="color: blue;">uint </span>dx, <span style="color: blue;">uint </span>dy, <span style="color: blue;">uint </span>dwData, <span style="color: blue;">uint</span> dwExtraInf);<br /><br /><br /> <span style="color: blue;"> public static void </span>LeftMouseClick(<span style="color: blue;">int </span>xpos, <span style="color: blue;">int </span>ypos)<br /> {<br /> <span style="color: blue;">int </span>x = <span style="color: #6fa8dc;">Convert</span>.ToInt16(xpos) ; //<span style="color: #38761d;">set x position </span><br /> <span style="color: blue;">int </span>y = <span style="color: #6fa8dc;">Convert</span>.ToInt16(ypos) ; <span style="color: #38761d;">//set y position </span><br /> <span style="color: #3d85c6;">Cursor</span>.Position = <span style="color: blue;">new </span><span style="color: #3d85c6;">Point</span>( x , y ) ;<br /> mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) ; <span style="color: #38761d;">//make left button down</span><br /> mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0) ; <span style="color: #38761d;">//make left button up</span><br /><b><br /> }<br /> }<br />}</b></span></span><br />
<br />
<br />
<br />
<h3 style="text-align: left;">
<span style="color: magenta;">See Also Below Links:</span></h3>
<div style="text-align: left;">
<b><a href="mailto:http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">1- Download file using Selenium webdriver C#</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">2-Implicit and explicit wait in selenium</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">3-Upload file in Selenium WebDriver in java using Robot Class</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">4-Upload File Using Selenium WebdDriver in Java using AutoIt </span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="https://www.blogger.com/null" target="_blank"><span style="font-weight: normal;">5-</span></a></b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">Upload a file using selenium web driver in c#</a></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<a href="https://www.blogger.com/6-%20%20http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">6-Upload a file using selenium web driver in c# using AutoIt</a><b> </b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b>
</b><span style="color: #3d85c6;"><span style="font-weight: normal;"><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank"><span style="color: #3d85c6;">7-Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</span></a> </span></span></div>
</div>
</li>
</ol>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com1tag:blogger.com,1999:blog-8770391591876702071.post-14438742670474006342015-06-07T02:34:00.001-07:002015-06-21T20:15:39.491-07:00Upload a file using selenium web driver in c# <div dir="ltr" style="text-align: left;" trbidi="on">
<h3 class="r" style="text-align: center;">
Upload a file using selenium web driver in c# </h3>
<div class="r" style="text-align: left;">
selenium can not identify the Input tag having attribute as file. Also selenium is not able to handle windows popup like Open File Dialog.</div>
<div class="r" style="text-align: left;">
<span style="color: blue;">Ex: </span></div>
<div class="r" style="text-align: left;">
<span style="color: blue;"><input type="file" id="browse1" name="browse"> </file></span> </div>
<div class="r" style="text-align: left;">
So To handle such kind of situation in selenium we have to use third party tools like Autoit, Point Position etc....</div>
<h3 class="r">
Prerequisite/Requirements:</h3>
<ol style="text-align: left;">
<li><h4 class="r" style="text-align: left;">
<span style="color: #e06666;">Visual Studio</span></h4>
</li>
<li><h4 class="r" style="text-align: left;">
<span style="color: #e06666;">NUnit</span>: Testing Framework.</h4>
</li>
<li><h4 class="r" style="text-align: left;">
<span style="color: #e06666;">Autoit </span>V3: To Handle Windows OpenfileDialog. </h4>
</li>
<li><h4 class="r" style="text-align: left;">
<span style="color: #e06666;">Point </span>Position software / Tool: to find the X and y coordinate of "Browse" Button. <span style="color: #e06666;"> </span></h4>
</li>
</ol>
<h4 class="r" style="text-align: left;">
<span style="color: #e06666;"></span></h4>
<ol style="text-align: left;">
<li><h3 class="r" style="text-align: left;">
<span style="color: magenta;">procedure:</span></h3>
<ol>
<li>Run visual Studio<b><span style="font-weight: normal;"><br /></span></b></li>
<li><b><span style="font-weight: normal;">Select Test under project Template</span></b></li>
<li><b><span style="font-weight: normal;">Select <b>U</b>nitTest from right window </span></b></li>
<li><b><span style="font-weight: normal;">Ex: </span></b><b><span style="font-weight: normal;">select File->New->project->select Test -> under that select Unit </span></b><span style="font-weight: normal;">T</span><b><span style="font-weight: normal;">est Project.</span></b><b><span style="font-weight: normal;"></span></b><b><span style="font-weight: normal;"> </span></b></li>
<li><span style="font-weight: normal;"><b>Give the project name as "UploadingFileOnNaukri</b>" </span></li>
<li><span style="font-weight: normal;">Under Solution / Project select References -> Right click it on it->add WebDriver.dll and webDriver.Support.dll</span></li>
<li><span style="font-weight: normal;">Add another Reference to project "<b>System.Windows.Forms"</b></span></li>
<li><span style="font-weight: normal;">Add another Reference to project <b>"System.Drawing" </b></span></li>
</ol>
<span style="font-weight: normal;"><b> </b></span> </li>
</ol>
<br />
<br />
Remove Namespace named <b>"using Microsoft.VisualStudio.TestTools.UnitTesting"</b><br />
Remove attribute <b>"TestClass"</b> and <b>"TestMethod"</b> from class and method.<br />
Add Namespace Named as <b> using NUnit.Framework;</b><br />
Add Namespace <b>using OpenQA.Selenium.Firefox; </b><br />
Add Namespace <b>using OpenQA.Selenium.Support.UI; </b><br />
Add Namespace <b>using OpenQA.Selenium; </b><br />
Add Namespace <b>using System.Windows.Forms; </b><br />
Add Namespace <b>using System.Drawing;</b><br />
Add Namespace<b> using System.Threading;</b><br />
Add Namespace<b> using System.Diagnostics;<span style="font-weight: normal;"> </span></b><br />
<br />
<br />
<span style="font-weight: normal;"><b>Lets consider I want to upload a file which is present on <span style="color: #e69138;">D:\Avinash\Fileupload.txt.</span></b></span><br />
<br />
<span style="font-weight: normal;"><b><span style="color: #e69138;">Code :</span></b></span><br />
<br />
<span style="font-weight: normal;"><b><span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>OpenQA.Selenium;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Chrome;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Firefox;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Support.UI;<br /><span style="color: blue;">using </span>NUnit.Framework;<br /><span style="color: blue;">using </span>System.Threading;<br /><span style="color: blue;">using </span>System.Diagnostics;<br /><br /><span style="color: blue;">namespace </span>UploadingFileOnNaukri<br />{<br /> [TestFixture]<br /> <span style="color: blue;">public class </span>FileUpload<br /> {</b><br /> IWebDriver driver = <span style="color: blue;">null</span>;<br /> IWebElement element = <span style="color: blue;">null</span>;<br /> int xCoordinate = 0;<br /> int yCoordinate = 0;<b><br /> <br /> [SetUp]<br /> <span style="color: blue;"> public void </span>SetUp()<br /> {<br /> </b> <span style="color: #3d85c6;">ChromeOptions </span>options = new <span style="color: #3d85c6;">ChromeOptions</span>();<br /> options.AddArgument("start-maximized");<br /> driver = new <span style="color: #3d85c6;">ChromeDriver</span>("<span style="color: red;">G:\\Selenium_Csharp\\Jar\\chromedriver_win32</span>", options);<br /> <b> }<br /><br /> [Test]<br /> <span style="color: blue;">public void</span> TestFileUpload()<br /> {</b></span><br />
<div style="text-align: left;">
<span style="font-weight: normal;"><b> </b>driver.Navigate().GoToUrl("<span style="color: blue;">http://my.naukri.com/manager/createacc2.php?othersrcp=11499&wExp=N</span>");</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"></span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> <span style="color: #3d85c6;">Thread</span>.Sleep(300);</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> ((<span style="color: #3d85c6;">IJavaScriptExecutor</span>)driver).ExecuteScript("window.scrollTo(0,600);");</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"></span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> <span style="color: #3d85c6;">Thread</span>.Sleep(5000);</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> xCoordinate = 537;</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> yCoordinate = 331; </span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> </span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> <span style="color: #3d85c6;">MouseEvents</span>.LeftMouseClick(xCoordinate,yCoordinate);</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> xCoordinate = 545;</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> yCoordinate = 345;</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> <span style="color: #3d85c6;">MouseEvents</span>.LeftMouseClick(xCoordinate,yCoordinate);</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> <span style="color: #3d85c6;">Thread</span>.Sleep(6000);</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> <span style="color: #3d85c6;">Process</span>.Start("<span style="color: red;">G:\\Autoit\\NaukriFileUpload.exe</span>");</span></div>
<div style="text-align: left;">
<span style="font-weight: normal;"> <span style="color: #3d85c6;">Thread</span>.Sleep(10000);</span></div>
<span style="font-weight: normal;"></span><br />
<span style="font-weight: normal;"><b><br /> }<br /><br /> [TearDown]<br /> <span style="color: blue;">public void</span> TearDown()<br /> {<br /> <span style="color: #3d85c6;">element </span>= <span style="color: blue;">null</span>;<br /> <span style="color: #3d85c6;">driver</span>.Quit();<br /> }<br /> }<br />}</b><br /><b><span style="color: #e69138;"></span></b></span><br />
<span style="font-weight: normal;"><b><span style="color: #e69138;"><br /></span></b></span>
<span style="font-weight: normal;"><b><span style="color: #e69138;"><span style="color: red;">Note:</span></span></b></span><br />
<ol style="text-align: left;">
<li><span style="font-weight: normal;">Add another Class names as "<b>MouseEvents</b>.cs" in current project.</span></li>
<li><span style="font-weight: normal;">It handles the mouse click event by using C# low level Handle.</span></li>
</ol>
<br />
<span style="color: magenta;"><span style="font-weight: normal;"><b>Select project -> Right click -> Add new Class -> Give Name as "MouseEvents.cs"</b></span></span><br />
<br />
<span style="font-weight: normal;"><b><span style="color: #e69138;">code: </span></b></span><br />
<br />
<span style="font-weight: normal;"><b><span style="color: #e69138;"><span style="color: black;"><span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>System.Collections.Generic;<br /><span style="color: blue;">using </span>System.Linq;<br /><span style="color: blue;">using </span>System.Text;<br /><span style="color: blue;">using </span>System.Threading.Tasks;<br /><span style="color: blue;">using </span>System.Windows.Forms;<br /><span style="color: blue;">using </span>System.Drawing;<br /><br /><span style="color: blue;">namespace </span>UploadingFileOnNaukri<br />{<br /> <span style="color: blue;">class </span>MouseEvents<br /> {<br /> </span></span></b><span style="color: #e69138;"><span style="color: black;"><span style="color: blue;"> private const</span> <span style="color: #6fa8dc;">UInt32 </span>MOUSEEVENTF_LEFTDOWN = 0x0002;<br /> <span style="color: blue;"> private const</span> <span style="color: #6fa8dc;">UInt32 </span>MOUSEEVENTF_LEFTUP = 0x0004;</span></span><b><span style="color: #e69138;"><span style="color: black;"><br /> [System.Runtime.InteropServices.DllImport("<span style="color: red;">user32.dll</span>")]<br /> </span></span></b><span style="color: #e69138;"><span style="color: black;"><span style="color: blue;"> private static extern void</span> mouse_event(<span style="color: blue;">uint </span>dwFlags, <span style="color: blue;">uint </span>dx, <span style="color: blue;">uint </span>dy, <span style="color: blue;">uint </span>dwData, <span style="color: blue;">uint</span> dwExtraInf);</span></span><b><span style="color: #e69138;"><span style="color: black;"><br /><br /> <span style="color: blue;"> public static void </span>LeftMouseClick(<span style="color: blue;">int </span>xpos, <span style="color: blue;">int </span>ypos)<br /> {<br /> </span></span></b><span style="color: #e69138;"><span style="color: black;"> <span style="color: blue;">int </span>x = <span style="color: #6fa8dc;">Convert</span>.ToInt16(xpos); <span style="color: #6aa84f;">//set x position </span><br /> <span style="color: blue;">int </span>y = <span style="color: #6fa8dc;">Convert</span>.ToInt16(ypos); <span style="color: #6aa84f;">//set y position </span><br /> <span style="color: #6fa8dc;">Cursor</span>.Position = <span style="color: blue;">new </span><span style="color: #6fa8dc;">Point</span>(x, y);<br /> mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0); <span style="color: #6aa84f;">//make left button down</span><br /> mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0); <span style="color: #6aa84f;">//make left button up</span></span></span><b><span style="color: #e69138;"><span style="color: black;"><br /> }<br /> }<br />}</span></span></b></span><br />
<br />
<span style="font-weight: normal;"><b>Note: </b></span><br />
<span style="font-weight: normal;"><b>Download the Autoit Testing tool</b> i.e. autoitau3</span><br />
<span style="font-weight: normal;">Install it.</span><br />
<span style="font-weight: normal;">open the SCiTE Script Editor.</span><br />
<span style="font-weight: normal;">open the Autoit V3 Window info </span><br />
<span style="font-weight: normal;"><br /></span>
<span style="font-weight: normal;"><br /></span>
<br />
<h4 style="text-align: left;">
<b><span style="font-weight: normal;">S<span style="color: #a64d79;"><b>Cite Script Editor: </b></span></span></b></h4>
<ul style="text-align: left;">
<li><span style="font-weight: normal;"> It is used to write the script to handle windows open file dialog.</span></li>
<li><span style="font-weight: normal;"> It will select the file to be Uploaded from the given file path.</span></li>
<li><span style="font-weight: normal;"> it will upload the selected file by pressing "<b>Open</b>" button on fileDialog.</span></li>
</ul>
<br />
<h4 style="text-align: left;">
<span style="color: #741b47;"><span style="font-weight: normal;">A<b>utoIt V3 Window Info:</b></span></span></h4>
<ul style="text-align: left;">
<li><span style="font-weight: normal;"> It is used to Identify the parameter or information of text box and open button on Filedialog.</span></li>
<li><span style="font-weight: normal;"> It will gives the information of parameters like Title of FileDialog , class, Id of each control on a OpenFileDialog.</span></li>
</ul>
<span style="font-weight: normal;"><br /></span>
<br />
<h4 style="text-align: left;">
<span style="font-weight: normal;"><span style="color: orange;"><b>Code in autoit:</b></span></span></h4>
<ol style="text-align: left;">
<li><span style="font-weight: normal;"><b>Open </b></span><span style="font-weight: normal;"><b><span style="font-weight: normal;">SCiTE Script Editor.</span></b></span></li>
<li><span style="font-weight: normal;"><b><span style="font-weight: normal;">Write below code:</span></b></span></li>
</ol>
<br />
<span style="font-weight: normal;">ControlFocus(<span style="color: red;">"Open", "", "Edit1"</span>)<br />ControlSetText(<span style="color: red;">"Open", "", "Edit1", "D:\Avinash\FileUpload.txt"</span>)<br />ControlClick(<span style="color: red;">"Open", "", "Button1"</span>)</span><br />
<span style="font-weight: normal;"><br /></span>
<span style="font-weight: normal;"><b>Save file as</b> <span style="color: blue;"><b>FileUpload.au3</b></span></span><br />
<span style="font-weight: normal;"><br /></span>
<span style="font-weight: normal;">Go to that file where above file is saved and right<span style="color: magenta;"> Click on it-> select Compile -> creates FileUpload.exe file.</span></span><br />
<span style="font-weight: normal;"><br /></span>
<span style="font-weight: normal;">Screen Shot to identify the above parameters like- "<b>open</b>" , "<b>Edit1</b>" , "<b>Button1</b>" .</span><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-_H_mtN2ImM24j9JJTBcItVlLRPa2QnlQlF87e55JIDCDiMnhuJ89APjeDmGft7PEE_b10nGWyhQjxzSvsjyGrOS_c7kli1q55E3zE6YWlMvv7nJf56MWMIGpSadyHeAc359f_AWyDzs/s1600/TextBox_Window_info.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-_H_mtN2ImM24j9JJTBcItVlLRPa2QnlQlF87e55JIDCDiMnhuJ89APjeDmGft7PEE_b10nGWyhQjxzSvsjyGrOS_c7kli1q55E3zE6YWlMvv7nJf56MWMIGpSadyHeAc359f_AWyDzs/s640/TextBox_Window_info.jpg" width="640" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5VdoyDbE5rgYYFgFcs7ShxHWDOQH2jrjiaC1WLa7INqSNcle_FwHDwEG5OBkIxzFYIA-SPIkaJrRzvWumk2Ngx-BBbagwM95Tywjx6WJPMa-QdrH7_3zKp4BOXHdlbmtfWuiiw8ez5Y8/s1600/Open_button_Window_info.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="298" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5VdoyDbE5rgYYFgFcs7ShxHWDOQH2jrjiaC1WLa7INqSNcle_FwHDwEG5OBkIxzFYIA-SPIkaJrRzvWumk2Ngx-BBbagwM95Tywjx6WJPMa-QdrH7_3zKp4BOXHdlbmtfWuiiw8ez5Y8/s640/Open_button_Window_info.jpg" width="640" /></a></div>
<span style="font-weight: normal;"><br /></span>
<span style="font-weight: normal;"><br /></span>
<span style="font-weight: normal;"><br /></span>
<br />
<h3 style="text-align: left;">
<span style="color: magenta;">See Also Below Links:</span></h3>
<div style="text-align: left;">
<b><a href="mailto:http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">1- Download file using Selenium webdriver C#</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">2-Implicit and explicit wait in selenium</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">3-Upload file in Selenium WebDriver in java using Robot Class</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">4-Upload File Using Selenium WebdDriver in Java using AutoIt </span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="https://www.blogger.com/null" target="_blank"><span style="font-weight: normal;">5-</span></a></b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">Upload a file using selenium web driver in c#</a></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<a href="https://www.blogger.com/6-%20%20http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">6-Upload a file using selenium web driver in c# using AutoIt</a><b> </b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b>
</b><span style="color: #3d85c6;"><span style="font-weight: normal;"><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank"><span style="color: #3d85c6;">7-Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</span></a> </span></span></div>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com8tag:blogger.com,1999:blog-8770391591876702071.post-76769624839997292962015-06-04T04:28:00.001-07:002015-07-07T09:57:28.330-07:00Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.<div dir="ltr" style="text-align: left;" trbidi="on">
<h2 style="text-align: left;">
<b>Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</b></h2>
<h2 style="text-align: left;">
</h2>
<ol style="text-align: left;">
<li>create / select a Unit Test project from existing template under test option.</li>
<li>Remove the name space - using Microsoft.VisualStudio.TestTools.UnitTesting; from your class/test.</li>
<li>Add the name space in your test/class <b> using NUnit.Framework;</b></li>
<li>Add the name space in your test/class <b> </b><b><b>using OpenQA.Selenium;</b></b></li>
<li>Add the name space in your test/class <b><b>using OpenQA.Selenium.Chrome;</b></b></li>
<li>Add the name space in your test/class <b><b>using OpenQA.Selenium.Support.UI;</b></b></li>
<li>Add the reference of <b>System.Drawing</b> by right click on References of your project.</li>
<li>Add the name space in your test/class <b> </b><b><b>using OpenQA.Selenium;s</b></b></li>
</ol>
<b><b> </b></b><b><b> </b></b><br />
<b><b>Below is the code to take the screen shot of Facebook Home page.</b></b><br />
<br />
<br />
<b><b><span style="color: blue;">using </span>System;<br /><span style="color: blue;">using </span>OpenQA.Selenium;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Chrome;<br /><span style="color: blue;">using </span>OpenQA.Selenium.Support.UI;<br /><span style="color: blue;">using </span>NUnit.Framework;<br /><span style="color: blue;">using </span>System.IO;<br /><span style="color: blue;">using </span>System.Collections;<br /><span style="color: blue;">using </span>System.Drawing.Imaging;<br /><br /><span style="color: blue;">namespace </span>FacebookRegistrationUsingC_Sharp<br />{<br /> [TestFixture]<br /> <span style="color: blue;"> public class</span> ScreenShot<br /> {<br /> </b></b>IWebDriver driver = <span style="color: blue;">null</span>;<br />
IWebElement element = null;<b><b><br /><br /> [SetUp]<br /> <span style="color: blue;">public void</span> SetUp()<br /> {</b></b><br />
<b><b><b><b> </b></b></b></b>driver = <span style="color: blue;">new </span>ChromeDriver("<span style="color: #cc0000;">G:\\Selenium_Csharp\\Jar\\chromedriver_win32</span>"); <br />
driver.Navigate().GoToUrl("<span style="color: #6fa8dc;">https://www.Facebook.com</span>");<br />
driver.Manage().Window.Maximize();<b><b><br /> }</b></b><br />
<b><b><br /> [Test]<br /> <span style="color: blue;"> public void</span> TestScreenShot()<br /> { <br /> </b></b><br />
Screenshot ss = ((ITakesScreenshot)driver).GetScreenshot();<br />
ss.SaveAsFile("e:\\AvinashPande.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg);<b><b><br /> }<br /><br /> [TearDown]<br /> <span style="color: blue;"> public void</span> TearDown()<br /> {<br /> </b></b> driver = <span style="color: blue;">null</span>;<br />
element = <span style="color: blue;">null</span>;<b><b><br /> }<br /> }<br />}</b></b><br />
<b><b></b></b><br />
Here the chance to get an error:<b><b> <span style="color: #cc0000;">A generic error occurred in GDI+.</span></b></b><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Z49cYh9q3thhWr8jDKD71Kbd62sXKrfHbuxXOeqjEStzzsOILKtBCuVeN1LDsr60z_Hz6nuXlvB5QGbua7hjegXZ8VgQhsMXZCmf_fatkCle7_9JyVd_ZgOHHUVcYs7nTFgv1-ANNNM/s1600/Screenshot.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="512" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi0Z49cYh9q3thhWr8jDKD71Kbd62sXKrfHbuxXOeqjEStzzsOILKtBCuVeN1LDsr60z_Hz6nuXlvB5QGbua7hjegXZ8VgQhsMXZCmf_fatkCle7_9JyVd_ZgOHHUVcYs7nTFgv1-ANNNM/s640/Screenshot.jpg" width="640" /></a></div>
<br />
<br />
<b><b>following Precaution to needs to be taken:</b></b><br />
<ol style="text-align: left;">
<li>You should not store the file on a drive on which operating system has been already installed.</li>
<li>you should give the name other than the file which has been present already in that folder in which current file in storing .<b><b> </b></b></li>
</ol>
<br />
<br />
<h3 style="text-align: left;">
<span style="color: magenta;">See Also Below Links:</span></h3>
<div style="text-align: left;">
<b><a href="mailto:http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/download-file-using-selenium-webdriver-c.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">1- Download file using Selenium webdriver C#</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/implicit-and-explicit-wait-in-selenium.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">2-Implicit and explicit wait in selenium</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-in-selenium-webdriver-in.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">3-Upload file in Selenium WebDriver in java using Robot Class</span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-webddriver.html" target="_blank"><span style="color: #3d85c6;"><span style="font-weight: normal;">4-Upload File Using Selenium WebdDriver in Java using AutoIt </span></span></a></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><a href="https://www.blogger.com/null" target="_blank"><span style="font-weight: normal;">5-</span></a></b><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver_7.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">Upload a file using selenium web driver in c#</a></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<a href="https://www.blogger.com/6-%20%20http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/upload-file-using-selenium-web-driver.html" target="_blank"><span style="color: #3d85c6;"></span></a><a href="https://www.blogger.com/null" target="_blank">6-Upload a file using selenium web driver in c# using AutoIt</a><b> </b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b><span style="color: #3d85c6;"><span style="font-weight: normal;"><br /></span></span></b></div>
<b>
</b>
<br />
<div style="text-align: left;">
<b>
</b><span style="color: #3d85c6;"><span style="font-weight: normal;"><a href="http://avinashpandeblogsonseleniumautomation.blogspot.in/2015/06/taking-screen-shot-of-page-by-using.html" target="_blank"><span style="color: #3d85c6;">7-Taking Screen Shot of a page By using selenium Webdriver With NUnit and C#.Net in Visual Studio-2012.</span></a> </span></span></div>
<b><b> </b> </b><br />
<b><b><a href="https://drive.google.com/folderview?id=0B60V_NmDzs-HfmlVMUducmprdnRCQ2liVTBCVlpGbHNFdzlCX1dqXzdUS3lRZzZxWjdfME0&usp=sharing" target="_blank">click</a></b></b><br />
<ol style="text-align: left;">
</ol>
</div>
Avinash Pandehttp://www.blogger.com/profile/01564412737675372831noreply@blogger.com0Pune, Maharashtra, India18.5204303 73.85674369999992518.2795358 73.534020199999929 18.7613248 74.17946719999992