tag:blogger.com,1999:blog-24119589032247456372024-03-14T10:48:56.711+05:30All about application performance and test automationBharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.comBlogger164125tag:blogger.com,1999:blog-2411958903224745637.post-78994475458064468182020-09-25T09:25:00.005+05:302021-10-03T19:53:09.077+05:30Best Broadband internet connection (Jio, Airtel and ACT)<p>I normally maintain Jio and Airtel internet connections, as we started working from home due to the COVID I have also added ACT in my backup mechanism. At least one device will be connected to each of the connections all the time so that we would be aware of any connection is down.</p><p>For the past 6 months, we have been using the internet connection for my work, children's online classes, and recreation. I am trying to provide feedback based on my experience during the work and I am located in Hyderabad. All the 3 internet connections are powered by APC BR1000IN UPS. I have considered many parameters like jitter, latency, uptime, speed consistency and ticket resolution, etc. I would rate the internet connections in the following order.</p><p><span style="color: #2b00fe; font-size: medium;">1. Airtel</span></p><p><span style="color: #2b00fe; font-size: medium;">2. Jio</span></p><p><span style="color: #2b00fe; font-size: medium;">3. ACT</span></p>Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-27205609568786800802020-02-21T00:47:00.002+05:302020-02-21T00:51:31.557+05:30How to enable Docker experimental feature?<div dir="ltr" style="text-align: left;" trbidi="on">
I couldn't find the correct information on <a href="http://docker.com/">Docker.com</a> to enable the experimental features, so I thought of writing this post.<br />
<br />
How to find experimental features enabled on your Docker instance?<br />
<br />
<i>docker version</i><br />
<i><br /></i>
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://1.bp.blogspot.com/-EF-DVGpkjQs/Xk7YUpP5FYI/AAAAAAAAKk0/TwiJljEbpwQjB6MHPAQnW-ZbVJUSKvpxgCLcBGAsYHQ/s1600/dockerversion.png" imageanchor="1" style="clear: left; float: left; margin-bottom: 1em; margin-right: 1em;"><img border="0" data-original-height="584" data-original-width="635" height="587" src="https://1.bp.blogspot.com/-EF-DVGpkjQs/Xk7YUpP5FYI/AAAAAAAAKk0/TwiJljEbpwQjB6MHPAQnW-ZbVJUSKvpxgCLcBGAsYHQ/s640/dockerversion.png" width="640" /></a></div>
<i><br /></i>
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
You need to enable both the Client and Server as shown in the above screenshot.<br />
<br />
How did I enable on my Ubuntu?<br />
<br />
1. I have included the following text at <i><b>/etc/docker/daemon.json</b></i><br />
<i><br /></i>
<i>{</i><br />
<i> "experimental": true</i><br />
<i></i><br />
<i>}</i><br />
<i><br /></i>
2. I have included the following text at <b>/home/ubuntu/.docker/config.json</b><br />
<br />
{<br />
"experimental": "enabled"<br />
}<br />
<br />
3. Your default user "ubuntu" needs to be added to the "docker" group.<br />
<br />
4. Restart the Docker - <i><b>sudo systemctl restart docker</b></i><br />
<i><b><br /></b></i>
Note: If the folders are files that don't exist, create those.<br />
<br />
<br /></div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-38063275921216724912013-11-14T14:54:00.004+05:302013-11-14T14:55:04.144+05:30Mobile - Native vs Web vs Hybrid App<div dir="ltr" style="text-align: left;" trbidi="on">
Mobile - Native vs Web vs Hybrid App<br />
<br />
<b>Native apps</b> live on the device and are accessed through icons on the device home screen. Native apps are installed through an application store (such as Google Play or Apple’s App Store). They are developed specifically for one platform, and can take full advantage of all the device features–they can use the camera, the GPS, the accelerometer, the compass, the list of contacts, and so on. They can also incorporate gestures (either standard operating-system gestures or new, app-defined gestures). And native apps can use the device’s notification system and can work offline.<br />
<br />
<br />
<b>Web apps</b> are not real apps; they are really websites that, in many ways, look and feel like native applications. They are run by a browser and typically written in HTML5. Users first access them as they would access any web page: they navigate to a special URL and then have the option of “installing” them on their home screen by creating a bookmark to that page.<br />
<br />
Web apps became really popular when HTML5 came around and people realized that they can obtain native-like–functionality in the browser. Today, as more and more sites use HTML5, the distinction between web apps and regular web pages has become blurry.<br />
<br />
<br />
<br />
<b>Hybrid apps</b> are part native apps, part web apps. (Because of that, many people incorrectly call them “web apps”). Like native apps, they live in an app store and can take advantage of the many device features available. Like web apps, they rely on HTML being rendered in a browser, with the caveat that the browser is embedded within the app.<br />
<br />
Often, companies build hybrid apps as wrappers for an existing web page; in that way, they hope to get a presence in the app store, without spending significant effort for developing a different app. Hybrid apps are also popular because they allow cross-platform development: that is, the same HTML code components can be reused on different mobile operating systems, reducing significantly the development costs. Tools such as PhoneGap and Sencha Touch allow people to design and code across platforms, using the power of HTML.<br />
<br />
---<br />
<br /></div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com1tag:blogger.com,1999:blog-2411958903224745637.post-19476938684929059362013-08-29T16:01:00.000+05:302013-08-29T16:01:17.923+05:30Selenium 3<div dir="ltr" style="text-align: left;" trbidi="on">
Selenium3<br />
<br />
<div style="text-align: left;">
<span style="font-family: inherit;">Yes, you heard it right. It is almost two years with the release of the Selenium 2, now the team is focusing on the Mobile testing. Developers from the projects <a href="http://appium.io/" style="background-color: white; border: 1px solid white; color: #b54141; line-height: 21.109375px; text-decoration: none;">Appium</a><span style="background-color: white; line-height: 21.109375px;">, </span><a href="http://ios-driver.github.io/ios-driver/" style="background-color: white; border: 1px solid white; color: #b54141; line-height: 21.109375px; text-decoration: none;">ios-driver</a><span style="background-color: white; line-height: 21.109375px;"> and </span><a href="http://selendroid.io/" style="background-color: white; border: 1px solid white; color: #b54141; line-height: 21.109375px; text-decoration: none;">selendroid</a> are working to create a suite that support mobile platform.</span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;">For more information, select this <a href="http://seleniumhq.wordpress.com/2013/08/28/the-road-to-selenium-3/">link</a>.</span></div>
<div style="text-align: left;">
<span style="font-family: inherit;"><br /></span></div>
<div style="text-align: left;">
<span style="font-family: inherit;">---</span></div>
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-35166075434749880772013-08-12T11:14:00.002+05:302013-08-12T11:14:46.512+05:30Selebium v2.34.0 is ready for download<div dir="ltr" style="text-align: left;" trbidi="on">
<span style="font-family: Georgia, serif; font-size: 16px; line-height: 25.59375px;"><br /></span>
<span style="font-family: Georgia, serif; font-size: 16px; line-height: 25.59375px;">Download from this </span><a href="http://code.google.com/p/selenium/downloads/list" style="color: #999999; font-family: Georgia, serif; font-size: 16px; line-height: 25.59375px; text-decoration: none;">link</a><span style="font-family: Georgia, serif; font-size: 16px; line-height: 25.59375px;">.</span><br />
<span style="font-family: Georgia, serif; font-size: 16px; line-height: 25.59375px;"><br /></span>
<span style="font-family: Georgia, serif; font-size: 16px; line-height: 25.59375px;">Updated with the following items.</span><br />
<table id="src_table_0" style="background-color: white; border-collapse: collapse; color: black; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; font-size: 12px; margin: 0px; padding: 0px; white-space: pre;"><tbody style="margin: 0px; padding: 0px;">
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_1" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">v2.34.0</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_2" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">=======</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_3" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_4" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">WebDriver:</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_5" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Updated Firefox native event components to support Firefox 22.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_6" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Update synthesized mouse implementation. Mouse moves are</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_7" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> implemented using nsIDOMWindowUtils.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_8" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Finding libX11.so.6 in a slightly more intelligent way: Check that</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_9" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> dlopen actually succeeds, if not found in one of the fixed paths,</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_10" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> look in the LD_LIBRARY_PATH.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_11" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added ExpectedConditions to check for the visibility of all</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_12" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> WebElements in a List</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_13" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Updated the wgxpath library.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_14" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Updated our copy of the Closure compiler and library to the most</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_15" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> recent versions.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_16" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Updated the atoms library, including support for MS pointer events</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_17" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> and refinements to element visibility tests.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_18" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Close all open connections when stopping the SafariDriver server.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_19" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Fall back to a loopback address if the current machine does not</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_20" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> have an external IP address (as will be the case when there is no</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_21" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> internet connection).</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_22" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Remove sizzle dependency from the firefox driver. We only needed</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_23" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> this for versions of firefox prior to 3.5, which we no longer</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_24" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> support.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_25" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Fixed Select.escapeQuotes method.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_26" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added SafariOptions and support for custom Safari extensions.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_27" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Moved Mouse, Keyboard and TouchScreen to the interactions package</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_28" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> where they belong. This has the benefit of also making our build</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_29" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> files simpler once we delete the original versions which have been</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_30" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> deprecated.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_31" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Deprecated the HasTouchScreen interface.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_32" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Fixed condition in Select.select_by_index method to fix case when</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_33" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> selection is performed by index on a multiple select element.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_34" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Implemented an alpha version of a Marionette (WebDriver implemented</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_35" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> natively in Firefox) driver.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_36" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Deprecated IPhoneDriver.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_37" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added support for the HTML5 "hidden" attribute. If an element, or</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_38" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> ancestor, has hidden attribute make, it is not shown.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_39" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 2285: Allow setting default logLevel for standalone-server.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_40" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 5609: Adding the ability to redirect firefox process output</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_41" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> to file.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_42" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 5669: Add Driver#remote_status for the Ruby remote driver.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_43" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 5715: Adding toString method for the event firing</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_44" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> webelement.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_45" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_46" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">WebDriver JS:</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_47" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * When capturing console output, guard against user scripts that </td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_48" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> redefine the console global.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_49" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Improved logging in the test client.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_50" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Use goog.labs.testing.assertThat for the assertThat library.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_51" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Improved stack trace handling</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_52" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Defined a webdriver.Capabilities class for webdriverjs.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_53" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added native ChromeDriver support to WebDriverJs.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_54" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Mark discarded tasks as cancelled to prevent hanging on</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_55" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> asynchronously scheduled callbacks.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_56" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Include the webdriverjs tests in the built npm package. Updated</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_57" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> the README with instructions for running the tests using npm.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_58" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Add native PhantomJS support to webdriverjs.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_59" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_60" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">Grid:</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_61" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Update grid for change in behavior of WebDriver's new session</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_62" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> command.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_63" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Fixed handling of JSON conversion errors at node.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_64" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 5942: Fix hang of hub when node machine is not available.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_65" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_66" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">RC:</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_67" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Fixed RC tests failing in Firefox beta builds. This has been fixed</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_68" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> in two ways:</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_69" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_70" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Rely on the automation atoms where possible.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_71" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Obtain the document and window from the element the event is</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_72" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> firing from.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_73" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_74" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> In the course of fixing this, all but one usage of "triggerEvent"</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_75" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> was replaced. Because of this, the method has been inlined to the last</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_76" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> call site.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_77" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 1646: UTF-8 encoded user-extensions.js support.</td></tr>
<tr id="sl_svn187e211226392a3dacf2513cf37ce1366b563eb8_78" style="margin: 0px; padding: 0px;"></tr>
</tbody></table>
<br /><div>
---</div>
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-90513427422427704492013-08-07T10:09:00.001+05:302013-08-07T10:12:59.053+05:30HP UTF (Unified Functional Testing)<div dir="ltr" style="text-align: left;" trbidi="on">
HP is new version of the QTP software is UTF (Unified Functional Testing).<br />
I am attending demo offered by HP, post all the details later. Need to see how it can compete with the popular open source tool Selenium.<br />
Mean while go through the following links and video for an overview of the HP UFT.<br />
<br />
<a href="http://www.hp.com/go/uft">HP UTF</a> link<br />
<br />
<br />
<iframe allowfullscreen="" frameborder="0" height="315" src="//www.youtube.com/embed/-DKilwaiyGE" width="560"></iframe>
<br />
---<br />
<br />
<br /></div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-17943727356863218932013-08-02T13:45:00.000+05:302013-08-02T13:46:08.365+05:30Programming Languages Popularity<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
<br /></div>
The TIOBE Programming Community index is an indicator of the popularity of programming languages.<br />
<div>
For more details <a href="http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html">select this link</a>.</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-c3e66YA2T08/Uftql11KpsI/AAAAAAAAErA/XUnwixAtUxE/s1600/Programming+index.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://1.bp.blogspot.com/-c3e66YA2T08/Uftql11KpsI/AAAAAAAAErA/XUnwixAtUxE/s1600/Programming+index.PNG" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
---</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br />
<br /></div>
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-88795781447856568482013-07-29T09:30:00.000+05:302013-07-29T09:31:08.412+05:30SeleniumWebdriver programming Languages<div dir="ltr" style="text-align: left;" trbidi="on">
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
Selenium Supported Programming Languages</div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-j0eWlQw1GO4/UfXoa6AXa9I/AAAAAAAAEqg/QugoGuLeAPk/s1600/Selenium+Programming+Languages1.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://3.bp.blogspot.com/-j0eWlQw1GO4/UfXoa6AXa9I/AAAAAAAAEqg/QugoGuLeAPk/s1600/Selenium+Programming+Languages1.PNG" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-riq51HDYZnA/UfXoe7O4KFI/AAAAAAAAEqo/m9PbXqTxTog/s1600/Selenium+Programming+Languages2.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://2.bp.blogspot.com/-riq51HDYZnA/UfXoe7O4KFI/AAAAAAAAEqo/m9PbXqTxTog/s1600/Selenium+Programming+Languages2.PNG" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-7iutisHCqOk/UfXoiOE8_kI/AAAAAAAAEqw/RCO3PyCRNeM/s1600/Selenium+Programming+Languages3.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://4.bp.blogspot.com/-7iutisHCqOk/UfXoiOE8_kI/AAAAAAAAEqw/RCO3PyCRNeM/s1600/Selenium+Programming+Languages3.PNG" /></a></div>
<br />
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-3538321796990797472013-04-29T13:42:00.001+05:302013-04-29T14:18:27.202+05:30WebDriver's Build System<div dir="ltr" style="text-align: left;" trbidi="on">
WebDriver's Build System<br />
<div>
<br /></div>
<div>
I was trying to understand how to build the Webdriver and came across the following content(Build Doctor) which can help us understand the Webdriver build system.</div>
<div>
<br /></div>
<div>
<div>
WebDriver creator Simon Stewart knows a thing or two about building code. So I was intrigued when he mentioned that he’d written a grammar for <a href="http://rake.rubyforge.org/">Rake</a>, to enable building Java code.</div>
<div>
<br /></div>
<div>
Replacing Ant with <a href="http://rake.rubyforge.org/">Rake</a> has been a compelling idea for some years now. Until now I wasn’t convinced that you weren’t going to have the same issues as Ant – poorly factored builds that rapidly evolve into a project specific DSL. This may change things.</div>
<div>
<br /></div>
<div>
The build system, or grammar as Simon calls it allows you to break a typical monolithic build file down into a collection of fragments. Each fragment can have one or more targets declared, and each target has some attributes. More at <span style="color: black;"><a href="https://code.google.com/p/selenium/wiki/CrazyFunBuild">CrazyFunBuild</a>.</span></div>
<div>
<br /></div>
<div>
Simon is undergoing an exceptionally drawn-out email interview on the process:</div>
<div>
<br /></div>
<div>
Your build tool is one of a few new players. What was your motivation for adding to the build gene pool? Were you scratching an itch, or do you have a broader motive?</div>
<div>
<br /></div>
<div>
Definitely scratching an itch. WebDriver started off as a simple java</div>
<div>
project, but it quickly became obvious that it’d also be useful to</div>
<div>
have language bindings for things like C#, ruby and python. I could</div>
<div>
have settled on a separate build tool for each language, but there are</div>
<div>
places where a Java component depends on a DLL (for example) Switching</div>
<div>
build tools repeatedly when constructing a single logical unit seemed</div>
<div>
wasteful, so I started looking around for a build tool that would</div>
<div>
provide support for all the languages I wanted to use.</div>
<div>
<br /></div>
<div>
I failed, but settled on rake because it had poor support for everything </div>
<div>
<br /></div>
<div>
The next problem was that as the project grew, so did the Rakefile. It</div>
<div>
ended up being obscenely long and increasingly fragile, and in the end</div>
<div>
I was about the only person who would confidently hack around in</div>
<div>
there. An obviously sub-optimal state of affairs. The first step in</div>
<div>
fixing this was to break out common tasks into functions (because a</div>
<div>
Rakefile is just a ruby script in disguise) This still left a pretty</div>
<div>
large build file to deal with, so the next stage was to allow us to</div>
<div>
break the script into pieces. The obvious issue is that if you do</div>
<div>
this, where are paths relative to? The location of the top-level</div>
<div>
Rakefile? Or the fragment of code in the subdirectory? Worse, it’d be</div>
<div>
unwise to have duplicate task names (“test”) but detecting those while</div>
<div>
writing a fragment of a build file would be troublesome at best.</div>
<div>
<br /></div>
<div>
At the same time, I like my builds to be as declarative as possible,</div>
<div>
only breaking through the “fourth wall” to scripting when necessary.</div>
<div>
Encouraging people to leave lots of little scripts that are the pieces</div>
<div>
of a larger application as build files seemed like the worst way of</div>
<div>
achieving that goal of “declarativeness”. So, I wrote a parser for a</div>
<div>
sub-set of ruby (which mutated into a subset of python) using ragel</div>
<div>
that parses build files and generates rake targets based on the path</div>
<div>
to the build file and the name of the target in that file. It’s by no</div>
<div>
means an original idea: the only thing I can take even a crumb of</div>
<div>
credit for is the current implementation (and it’s pretty much</div>
<div>
designed to work with selenium, so there are lots of corners cut in</div>
<div>
there)</div>
<div>
<br /></div>
<div>
By clearly defining the build grammar, there’s also a chance to</div>
<div>
clearly define how paths are interpreted, so that neatly side-steps</div>
<div>
that problem. I also provided an “escape hatch” so that you can call</div>
<div>
out to other rake tasks as required. Better this is just a thin skin</div>
<div>
around other build tools (the java parts delegate to ant controlled</div>
<div>
programatically, and the .net pieces use visual studio) but it means</div>
<div>
that anyone can read the build files and understand how the source</div>
<div>
code, regardless of language, is transformed into a binary.</div>
<div>
<br /></div>
<div>
So, yeah, scratching the itch of “I want a single, declarative build</div>
<div>
tool that allows someone not familiar with the other build tools used</div>
<div>
to understand how the system works, and which can work with multiple</div>
<div>
languages”. Right now, it’s specific to the project, and I’m</div>
<div>
comfortable with that: I want to write a browser automation framework,</div>
<div>
not a build grammar or (worse) a build tool. </div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
---</div>
<br /></div>
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-29053993366125049852013-03-22T10:18:00.002+05:302013-03-22T10:18:54.022+05:30Bug Life Cycle - TFS<div dir="ltr" style="text-align: left;" trbidi="on">
Bug Life Cycle - TFS<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-V-qmRlG6pQU/UUvihWKhQII/AAAAAAAAEnI/aVtmOZSHcYM/s1600/BugLifeCycle+TFS.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="428" src="http://3.bp.blogspot.com/-V-qmRlG6pQU/UUvihWKhQII/AAAAAAAAEnI/aVtmOZSHcYM/s640/BugLifeCycle+TFS.PNG" width="640" /></a></div>
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-10147492454059751792013-03-16T23:08:00.000+05:302013-03-16T23:08:30.136+05:30DDoS Attacks: How to Prepare and Respond<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/rRYd5VVIa1o" frameborder="0" allowfullscreen></iframe>
</div>Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-90970284414199545682013-03-01T21:55:00.002+05:302013-03-02T12:27:07.857+05:30Rapid file duplicator or copier<div dir="ltr" style="text-align: left;" trbidi="on">
<div>
<br /></div>
<div>
Recently, I was given a task to check the document processing capability of an application. The objective of the test was to check whether system can consume 2 million documents in one hour duration.</div>
<div>
<br /></div>
<div>
System is configured to consume the documents from the specified folder, but the question is how to create 2 million documents in a folder. Manually copying the files take lot of time and test need to be repeated multiple times. Windows file system don't work optimally when a folder contain more than 5000 files, so need to create sub-folders, each sub-folder containing 4000 files and in total 2 million files.</div>
<div>
<br /></div>
<div>
I have created simple VB script program that use copy method to create duplicate files, it took nearly 20 hours. Then I started redesigning the program that will run the copy method in multiple threads, so that task can be accomplished in 1 hour by utilizing the 100% CPU capacity.</div>
<div>
<br /></div>
<div>
It consists of two programs. Initiator program calls the duplicator program multiple times, so that each program runs in different thread and task is accomplished quickly. Program settings need to be tweaked as per the system configuration, so that threads run in an optimal way, not too many or too less threads.<br />
<br />
<a href="https://docs.google.com/file/d/0B-t1R1zkSszVRDFIY2JSU0FXQXM/edit?usp=sharing">Program download link</a></div>
<div>
<br /></div>
<div>
<b><u style="background-color: yellow;">Initiator.vbs </u></b></div>
<div>
<br /></div>
<div>
<br />
'Make sure you have enough space on the system, this program run in multiple threads by utilizing 100% cpu<br />
'Just copy the files in any folder, it will automatically create subfolders<br />
'Perform file partations in the optimal way.<br />
<br />
FileName = "test.docx" 'Make sure file exist in the folder<br />
NumberOfCopies = 100 'Make sure division with the below number gives reminder 0 - 1000000 (Actual Test)<br />
NumberOfPartations = 10 'Number Of partaions or blocks for the above said file copies - 10000 (Actual Test)<br />
TimeStampGenerationAfterCopies = 10 'Generate time stamp in the log file after creating som many files - 1000 (Actual Test)<br />
NumberOfFilesInFolder = 4 'Number of files inside each folder - 3000 (Actual Test)<br />
<br />
<br />
'-------------------------------------------------------------------------------------<br />
<br />
'For appending zeros to the file name, so that files are sorted sequently<br />
Zeros = len(NumberOfCopies)<br />
<br />
Const ForAppending = 8<br />
count = NumberOfCopies/NumberOfPartations<br />
<br />
Set wshShell = CreateObject( "WScript.Shell" )<br />
set fso=CreateObject("Scripting.FileSystemObject")<br />
WorkingDirectory = fso.GetParentFolderName(Wscript.ScriptFullName)<br />
<br />
'Check folder exist, else create the folder<br />
strFolder = WorkingDirectory & "\Duplicates\"<br />
If Not fso.FolderExists(strFolder) Then<br />
fso.CreateFolder(strFolder)<br />
End If<br />
<br />
strFolder = WorkingDirectory & "\log\"<br />
If Not fso.FolderExists(strFolder) Then<br />
fso.CreateFolder(strFolder)<br />
End If<br />
<br />
Set MyFile = fso.OpenTextFile(WorkingDirectory & "\log\log.txt", ForAppending, True)<br />
MyFile.WriteLine("###################################################")<br />
MyFile.WriteLine("File Duplication Launch Start:" & funGetTimeStamp())<br />
MyFile.WriteLine("Total Launches:" & count)<br />
<br />
Start = 1<br />
End1 = NumberOfPartations<br />
<br />
for count1 = 1 to count<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>strFileName = WorkingDirectory & "\FileDuplicater.vbs" & " " & Start & " " & End1 & " " & count1 & " " & TimeStampGenerationAfterCopies & " " & NumberOfFilesInFolder & " " & FileName & " " & Zeros<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>wshShell.Run "wscript " & strFileName, 1, False<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>WScript.Sleep 3000<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Start = Start + NumberOfPartations<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End1 = End1 + NumberOfPartations<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<br />
<br />
next<br />
<br />
MyFile.WriteLine("File Duplication Launch End:" & funGetTimeStamp())<br />
<br />
Set fso = Nothing<br />
Set wshShell = Nothing<br />
<br />
<br />
Function funGetTimeStamp()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>sDateTIme = Now()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iDate = Datepart("d",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iDate)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iDate = "0" & iDate<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>sMonth= mid(MonthName(Datepart("m",sDateTime)),1,3)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iYear = Datepart("yyyy",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iHour = Datepart("h",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iHour)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iHour = "0" & iHour<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iMinute = Datepart("n",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iMinute)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iMinute = "0" & iMinute<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iSec = Datepart("s",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iSec)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iSec = "0" & iSec<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<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>funGetTimeStamp = sMonth & "_" & iDate & "_" & iYear & "_" & iHour & "_" & iMinute & "_" & iSec<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
End Function<br />
<br /></div>
<div>
<br /></div>
<div>
<b><u style="background-color: yellow;">FileDuplicator.vbs</u></b></div>
<div>
<br /></div>
<div>
<div>
<br />
'This program need to be called by Initiator.vbs that pass the necessary command line parameters<br />
'Arguments<br />
Set objArgs = WScript.Arguments<br />
StartIndex = clng(objArgs(0))<br />
EndIndex = clng(objArgs(1))<br />
LaunchID = clng(objArgs(2))<br />
TimeStampGenerationAfterCopies = clng(objArgs(3))<br />
NumberOfFilesInFolder = clng(objArgs(4))<br />
FileName = objArgs(5)<br />
Zeros = clng(objArgs(6))<br />
Set objArgs = Nothing<br />
<br />
FolderIndex = 1<br />
FileCount = 1<br />
<br />
<br />
TimeStampGenerationAfterCopies1 = TimeStampGenerationAfterCopies<br />
<br />
set fso=CreateObject("Scripting.FileSystemObject")<br />
WorkingDirectory = fso.GetParentFolderName(Wscript.ScriptFullName)<br />
<br />
strFolder = WorkingDirectory & "\Duplicates\" & LaunchID & "_" & FolderIndex & "\"<br />
If Not fso.FolderExists(strFolder) Then<br />
fso.CreateFolder(strFolder)<br />
End If<br />
<br />
Length = len(FileName)<br />
JustFileName = Mid(FileName,1,Length-5) '.docx len 5<br />
JUstFileExt = Mid(FileName,Length-4) 'docx len 4<br />
<br />
LogFile = "\log\log_" & LaunchID & ".txt"<br />
<br />
OrginalFileNamePath = WorkingDirectory & "\" & FileName<br />
<br />
Set MyFile = fso.OpenTextFile(WorkingDirectory & LogFile, ForAppending, True)<br />
MyFile.WriteLine("##########################################################")<br />
MyFile.WriteLine("LaunchID:" & LaunchID & "---" & "Start:" & funGetTimeStamp())<br />
MyFile.WriteLine("LaunchID:" & LaunchID & "---" & "StartIndex:" & StartIndex)<br />
MyFile.WriteLine("LaunchID:" & LaunchID & "---" & " EndIndex:" & EndIndex)<br />
MyFile.WriteLine("LaunchID:" & LaunchID & "---" & " TimeStamp Generated after number of files:" & TimeStampGenerationAfterCopies)<br />
<br />
TimeStampCounter = TimeStampGenerationAfterCopies + StartIndex<br />
<br />
if StartIndex = 1 then<br />
else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>StartIndex = StartIndex - 1<br />
end if<br />
Const ForAppending = 8<br />
<br />
for count = StartIndex to EndIndex<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>'Logic to append zeros<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>FileIndexLength = len(count)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>FileIndex = count<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>for count1 = 1 to (Zeros - FileIndexLength)<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>FileIndex = "0" & FileIndex<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>next<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>DuplicateFileNamePath = strFolder & JustFileName & "_" & FileIndex & JUstFileExt<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>fso.CopyFile OrginalFileNamePath, DuplicateFileNamePath , True<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if TimeStampCounter = count then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>MyFile.WriteLine("LaunchID:" & LaunchID & "---" & "Total Files Duplicated:" & TimeStampGenerationAfterCopies1 & "---" & funGetTimeStamp())<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>TimeStampCounter = TimeStampCounter + TimeStampGenerationAfterCopies<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>TimeStampGenerationAfterCopies1 = TimeStampGenerationAfterCopies1 + TimeStampGenerationAfterCopies<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>else<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>end if<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>if FileCount = NumberOfFilesInFolder then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>FileCount = 0<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>FolderIndex = FolderIndex + 1<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>strFolder = WorkingDirectory & "\Duplicates\" & LaunchID & "_" & FolderIndex & "\"<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If Not fso.FolderExists(strFolder) Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>fso.CreateFolder(strFolder)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>FileCount = FileCount + 1<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
next<br />
<br />
MyFile.WriteLine("LaunchID:" & LaunchID & "---" & " End:" & funGetTimeStamp())<br />
MyFile.Close<br />
Set MyFile = Nothing<br />
<br />
'wscript.echo "File Duplication Completed. Total Files:" & NumberOfCopies<br />
<br />
Set fso = Nothing<br />
<br />
<br />
<br />
Function funGetTimeStamp()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>sDateTIme = Now()<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iDate = Datepart("d",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iDate)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iDate = "0" & iDate<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>sMonth= mid(MonthName(Datepart("m",sDateTime)),1,3)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iYear = Datepart("yyyy",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iHour = Datepart("h",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iHour)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iHour = "0" & iHour<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iMinute = Datepart("n",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iMinute)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iMinute = "0" & iMinute<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iSec = Datepart("s",sDateTime)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iLen = Len(iSec)<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>If iLen = 1 Then<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>iSec = "0" & iSec<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>End If<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>funGetTimeStamp = sMonth & "_" & iDate & "_" & iYear & "_" & iHour & "_" & iMinute & "_" & iSec<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span><br />
End Function<br />
<br /></div>
</div>
<div>
<br /></div>
<div>
<b style="background-color: yellow;">Folder structure (Create below folders at any location in your file system)</b></div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-a1aqzqX6cTk/UTDVgXIvkiI/AAAAAAAAEmg/N9ADL8roAVA/s1600/File+duplicator+copier.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="363" src="http://1.bp.blogspot.com/-a1aqzqX6cTk/UTDVgXIvkiI/AAAAAAAAEmg/N9ADL8roAVA/s400/File+duplicator+copier.png" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
---</div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
<div>
<br /></div>
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-61990689877915845432013-01-14T13:27:00.002+05:302013-01-14T15:11:30.260+05:30Eclipse - Failed to create Java Virtual Machine<div dir="ltr" style="text-align: left;" trbidi="on">
Eclipse - Failed to create Java Virtual Machine.<br />
<br />
I have downloaded eclipse and opened the IDE many times. Recently I was performing <a href="http://bharath-marrivada.blogspot.in/2012/07/setup-seleniumwebdriver-windows.html">selenium webdriver setup</a> on my friends machine and came across the following error.<br />
<br />
<img src="http://4.bp.blogspot.com/-wQWuWiodAaY/TkeghcGFwjI/AAAAAAAAJFM/Ig1duCRCtOU/s400/failed%2Bto%2Bcreate%2BJVM.JPG" /><br />
<br />
In order to resolve this issue, I have updated the eclipse.ini file located in the eclipse folder, replaced the "-vmargs" with "-vm C:\Program Files\Java\jdk1.7.0_09\bin\javaw.exe", this solved the issue.<br />
<br />
The order way is to create a short cut for eclipse.exe and open the properties windows using right click and update the target path as shown below. This is similar to passing the command line arguments while opening the eclipse.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-gMhEjM9vwf4/UPO6T1DzAzI/AAAAAAAAElo/aZmsKxIb6O4/s1600/eclipse+failed+java+virtual+machine.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="http://1.bp.blogspot.com/-gMhEjM9vwf4/UPO6T1DzAzI/AAAAAAAAElo/aZmsKxIb6O4/s640/eclipse+failed+java+virtual+machine.png" width="454" /></a></div>
<br />
<br />
---<br />
<br />
<br /></div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-52022107554630929192012-12-18T20:46:00.002+05:302012-12-18T20:46:33.786+05:30Selenium 2.28 ready for download<div dir="ltr" style="text-align: left;" trbidi="on">
<br />
Selenium 2.28<br />
Download from this <a href="http://code.google.com/p/selenium/downloads/list">link</a>.<br />
<br />
<table id="src_table_0" style="background-color: white; border-collapse: collapse; color: black; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; font-size: 12px; margin: 0px; padding: 0px; text-align: start; white-space: pre;"><tbody style="margin: 0px; padding: 0px;">
<tr id="sl_svn18368_1" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">v2.28.0</td></tr>
<tr id="sl_svn18368_2" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">=======</td></tr>
<tr id="sl_svn18368_3" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18368_4" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">WebDriver:</td></tr>
<tr id="sl_svn18368_5" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * "null" can now be passed to executeScript</td></tr>
<tr id="sl_svn18368_6" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * .Net: Corrected FileUtilities.FindFile() to correctly return the</td></tr>
<tr id="sl_svn18368_7" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> current directory if the specified file is located there.</td></tr>
<tr id="sl_svn18368_8" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * .Net: Introduces the Updating the CustomFinderType property to the</td></tr>
<tr id="sl_svn18368_9" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> .NET FindsByAttribute. This allows use of custom By subclasses in</td></tr>
<tr id="sl_svn18368_10" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> the PageFactory. The custom finder must be a subclass of By, and</td></tr>
<tr id="sl_svn18368_11" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> it must expose a public constructor that takes a string argument.</td></tr>
<tr id="sl_svn18368_12" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * SafariDriver: better attempts to catch native dialogs from user</td></tr>
<tr id="sl_svn18368_13" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> defined onbeforeunload handlers.</td></tr>
<tr id="sl_svn18368_14" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Updating HtmlUnit to 2.11</td></tr>
<tr id="sl_svn18368_15" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added the PhantomJS bindings to the release. You'll still need to</td></tr>
<tr id="sl_svn18368_16" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> download PhantomJS itself separately.</td></tr>
<tr id="sl_svn18368_17" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18368_18" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">RC:</td></tr>
<tr id="sl_svn18368_19" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Implemented getAllWindowNames in WebDriverBackedSelenium</td></tr>
<tr id="sl_svn18368_20" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Implemented openWindow in WebDriverBackedSelenium to allow opening</td></tr>
<tr id="sl_svn18368_21" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> relative URLs</td></tr>
<tr id="sl_svn18368_22" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18368_23" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18368_24" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">v2.27.0</td></tr>
<tr id="sl_svn18368_25" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">=======</td></tr>
<tr id="sl_svn18368_26" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18368_27" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">WebDriver:</td></tr>
<tr id="sl_svn18368_28" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added support for native events for Firefox 17. </td></tr>
<tr id="sl_svn18368_29" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added support for ghostdriver (PhantomJS)</td></tr>
<tr id="sl_svn18368_30" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Adding new capability "enableElementCacheCleanup" to the IE</td></tr>
<tr id="sl_svn18368_31" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> driver. When set to true, the IE driver will clean the</td></tr>
<tr id="sl_svn18368_32" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> known-element cache of invalid elements after every page</td></tr>
<tr id="sl_svn18368_33" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> load. This is intended to keep memory usage down and improve</td></tr>
<tr id="sl_svn18368_34" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> performance. However, it is an intrusive change, so this</td></tr>
<tr id="sl_svn18368_35" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> capability is provided temporarily to allow disabling this</td></tr>
<tr id="sl_svn18368_36" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> behavior if problems arise. The default of this new capability is</td></tr>
<tr id="sl_svn18368_37" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> "true", meaning this behavior is turned on by default.</td></tr>
<tr id="sl_svn18368_38" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added shift key handling to the synthetic keyboard actions.</td></tr>
<tr id="sl_svn18368_39" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Modifying scroll behavior in IE driver SendKeysCommandHandler to</td></tr>
<tr id="sl_svn18368_40" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> call Element::GetLocationOnceScrolledIntoView() instead of calling</td></tr>
<tr id="sl_svn18368_41" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> the DOM scrollIntoView() function. Should result in less page</td></tr>
<tr id="sl_svn18368_42" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> scrolling during test runs.</td></tr>
<tr id="sl_svn18368_43" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Checking if CSS transforms on elements, or their parents, are</td></tr>
<tr id="sl_svn18368_44" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> hiding them and therefore returning they arent visible.</td></tr>
<tr id="sl_svn18368_45" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Add not, refreshed, invisibilityOfElementWithText to</td></tr>
<tr id="sl_svn18368_46" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> ExpectedConditions.</td></tr>
<tr id="sl_svn18368_47" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * Added support for new IE10 pointer events.</td></tr>
<tr id="sl_svn18368_48" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 1543: Allowing equal sign in a cookie value.</td></tr>
<tr id="sl_svn18368_49" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 2103, 3508: Modified to no longer hang on alerts triggered</td></tr>
<tr id="sl_svn18368_50" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> by onchange of <select> elements or by onsubmit of <form></td></tr>
<tr id="sl_svn18368_51" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> elements.</td></tr>
<tr id="sl_svn18368_52" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 2035: Returning a simple result (null) after opening a new</td></tr>
<tr id="sl_svn18368_53" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> window instead of the window object (that can't be serialized to</td></tr>
<tr id="sl_svn18368_54" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> JSON).</td></tr>
<tr id="sl_svn18368_55" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 2353: Only call blur() for IE if the element is not the</td></tr>
<tr id="sl_svn18368_56" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> <body> element.</td></tr>
<tr id="sl_svn18368_57" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 3043: Better error message reporting when browser launch</td></tr>
<tr id="sl_svn18368_58" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> fails.</td></tr>
<tr id="sl_svn18368_59" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 4490: Checking script evaluation result to prevent null</td></tr>
<tr id="sl_svn18368_60" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> reference exception.</td></tr>
<tr id="sl_svn18368_61" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 4736: Added all of the extended colour keywords to the</td></tr>
<tr id="sl_svn18368_62" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> Colors enum in support of</td></tr>
<tr id="sl_svn18368_63" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> http://www.w3.org/wiki/CSS3/Color/Extended_color_keywords.</td></tr>
<tr id="sl_svn18368_64" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 4800: Fixed calculation of coordinates for elements in</td></tr>
<tr id="sl_svn18368_65" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> frames/iframes where the element is scrolled out of view within</td></tr>
<tr id="sl_svn18368_66" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> the frame.</td></tr>
<tr id="sl_svn18368_67" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18368_68" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">Grid:</td></tr>
<tr id="sl_svn18368_69" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 3818: Generating session identifiers with UUID to prevent duplication.</td></tr>
<tr id="sl_svn18368_70" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18368_71" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">RC:</td></tr>
<tr id="sl_svn18368_72" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 4668: Fixing ability to open relative URLs in WDBS.</td></tr>
<tr id="sl_svn18368_73" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 4273: Added getCssCount to the list of the methods</td></tr>
<tr id="sl_svn18368_74" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> supported by WebDriverBackedSelenium.</td></tr>
<tr id="sl_svn18368_75" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 4055: WDBS implementation of getValue for radio buttons now</td></tr>
<tr id="sl_svn18368_76" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> reflects behaviour of RC.</td></tr>
<tr id="sl_svn18368_77" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> * FIXED: 4784: Processing locators before use in getCssCount and</td></tr>
<tr id="sl_svn18368_78" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"> getXpathCount.</td></tr>
<tr id="sl_svn18368_79" style="margin: 0px; padding: 0px;"></tr>
</tbody></table>
<br />
----<br />
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-52927792407414987642012-11-25T00:33:00.001+05:302012-11-25T18:41:55.769+05:30Selenium - java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.ie.driver system property;<div dir="ltr" style="text-align: left;" trbidi="on">
Selenium - java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.ie.driver system property;<br />
<br />
IE browser will fail with the above mentioned exception if we upgrade the Selenium webdriver with 2.26.<br />
<br />
<span style="background-color: yellow;">Reason?</span><br />
From 2.26 vesrion, IE driver got decoupled from selenium jar file and entire IE driver software is stored in a separate exe file, there are 32 and 64 bit versions.<br />
You need to download the exe file similar to chrome driver and use the following code to run the test.<br />
<br />
Sample code Java/TestNG<br />
<br />
<span style="white-space: pre;">WebDriver driver;</span><br />
<span style="white-space: pre;">
@BeforeMethod
public void StartDriver() {
File file = new File("C:/Seleniumjars/IEDriverServer.exe");
System.setProperty("webdriver.ie.driver", file.getAbsolutePath());
driver = new InternetExplorerDriver();
}
@AfterMethod(alwaysRun = true)
public void StopDriver() throws Exception {
driver.quit();
}
@Test(groups = { "GoogleTest" }, enabled = true,timeOut = 90000)
public void Test_TC_01_1() throws Exception {
driver.get("www.google.com");
}</span><br />
<br />
<span style="background-color: yellow;">Technical Reason?</span><br />
IE driver original implementation was in dll using native C++. As per the client language bindings .dll was extracted during run-time.<br />
For Java extracting from the .jar file.<br />
For .NET extracting it from resource package into WebDriver.dll assembly.<br />
Ruby and Python directly relied on the files, no extraction is required, just reference to the path.<br />
The language bindings would use following method to load the dll and expose the API<br />
JNI for Java<br />
P/Invoke for .NET<br />
ctypes for Python<br />
FFI for Ruby<br />
It works fine for simple scenarios, but due to above differences, IEdriver was showing different behavior between language bindings.<br />
The way .NET bindings loading and managing the .dll, it was able to support multiple instances of IE.<br />
Java bindings was not able to support multiple instances.<br />
<br />
In order to unify the experience across all the languages, separate process was created IEDriverServer.exe because now the process management is defined my the operating system (Different version of Windows) and client bindings can interact directly with the process API.<br />
<br />
As there is windows limitation where 32 bit process can't be loaded with 64 bit dll, separate 32 and 64 bit process are created.<br />
<br />
As the IE driver got decoupled from the selenium release, it is possible to ship the fixes of IE driver without having to wait for complete selenium release.<br />
<br />
It is easy to debug a standalone dll then dll loaded by the laungage binding.<br />
<br />
Thanks a lot to Jim Evans (IE driver and .NET bindings project lead) for sharing the details and contributing to the open source community.<br />
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-62486051281125388212012-11-18T20:03:00.002+05:302012-11-18T20:13:55.088+05:30VS2012 - Web Performance Test - Virtual Users Limit<div dir="ltr" style="text-align: left;" trbidi="on">
VS2012 - Web Performance Test - Virtual Users Limit.<br />
<br />
I was surprised to see there is no virtual users restrictions (Number of users) for conducting load test using Visual Studio 2012 Ultimate. Generally any commercial load test tool fix the tool cost based on the number of virtual users, technologies (AJAX, Flex, Silver-light..) and monitoring agents, now the trend got changed, need to see how other commercial load test tools like HP loadrunner, Neoload change the licence structure.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-nj4j2mIwCmA/UKjxuAhgu-I/AAAAAAAAElI/pIRE1OE0wFs/s1600/VS+2012+Virtual+users.PNG" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="92" src="http://4.bp.blogspot.com/-nj4j2mIwCmA/UKjxuAhgu-I/AAAAAAAAElI/pIRE1OE0wFs/s640/VS+2012+Virtual+users.PNG" width="640" /></a></div>
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-77070525017606227052012-11-16T18:01:00.002+05:302012-11-17T00:31:50.437+05:30Visual Studio 2012 - Versions for GUI and Performance Testing<div dir="ltr" style="text-align: left;" trbidi="on">
Visual Studio 2012 - Versions for GUI and Performance Testing<br />
<br />
Recently I started working with CodedUI and Performance testing using Visual Studio. I have VS2012 Professional and didn't find any option to select CodedUI project, so started investigating which all versions of VS2012 support GUI testing and performance testing. Below screen shot helped me to understand the supported versions of VS2012.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-KI3Tuj9dW7w/UKYxdebzXYI/AAAAAAAAEkY/tQ9TeBGqDr0/s1600/VS2012+codedUI+web+performance.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="314" src="http://1.bp.blogspot.com/-KI3Tuj9dW7w/UKYxdebzXYI/AAAAAAAAEkY/tQ9TeBGqDr0/s640/VS2012+codedUI+web+performance.png" width="640" /></a></div>
<br />
<br />
Approx cost of VS2012.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-8HL7GCy7kfU/UKaNkjxShwI/AAAAAAAAEk0/7EghYYtDS_o/s1600/VS2012+approx+cost.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="196" src="http://2.bp.blogspot.com/-8HL7GCy7kfU/UKaNkjxShwI/AAAAAAAAEk0/7EghYYtDS_o/s640/VS2012+approx+cost.png" width="640" /></a></div>
<br />
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-77507877506467209042012-11-08T15:19:00.000+05:302012-11-09T15:19:55.769+05:30Selenium 2.26 is ready for download.<div dir="ltr" style="text-align: left;" trbidi="on">
Selenium 2.26<br />
Download from this <a href="http://code.google.com/p/selenium/downloads/list">link</a>.<br />
Following are the major bug fixes and enhancements.<br />
Hats-off to the development team for frequent releases and you determination to enhance the tool.<br />
<br />
<table id="src_table_0" style="background-color: white; border-collapse: collapse; color: black; font-family: Monaco, 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', 'Lucida Console', monospace; font-size: 12px; margin: 0px; padding: 0px; text-align: start; white-space: pre;"><tbody style="margin: 0px; padding: 0px;">
<tr id="sl_svn18111_1" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">v2.26.0</td></tr>
<tr id="sl_svn18111_2" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">=======</td></tr>
<tr id="sl_svn18111_3" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">WebDriver:</td></tr>
<tr id="sl_svn18111_4" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Updated OperaDriver to 0.15.</td></tr>
<tr id="sl_svn18111_5" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Added transparency support to the Color class.</td></tr>
<tr id="sl_svn18111_6" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Increased lock time a bit for the FirefoxDriver to make tests more </td></tr>
<tr id="sl_svn18111_7" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">stable on Windows.</td></tr>
<tr id="sl_svn18111_8" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Added the enablePersistenHover capability to allow the user to specify</td></tr>
<tr id="sl_svn18111_9" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">whether to use the persistent hover thread in the IE driver. Defaults</td></tr>
<tr id="sl_svn18111_10" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">to true for IE.</td></tr>
<tr id="sl_svn18111_11" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Added support for native events for Firefox 15 and 16.</td></tr>
<tr id="sl_svn18111_12" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Removed deprecation from ChromeDriver constructors that take a Capabilities</td></tr>
<tr id="sl_svn18111_13" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">object. Also added a method to set experimental options in ChromeOptions</td></tr>
<tr id="sl_svn18111_14" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">which may be used to set options that aren't exposed through the ChromeOptions</td></tr>
<tr id="sl_svn18111_15" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">API.</td></tr>
<tr id="sl_svn18111_16" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Fixed SafariDriver to allow calling .quit() consecutively without error.</td></tr>
<tr id="sl_svn18111_17" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* Modified FirefoxDriver to use atoms to switch between frames.</td></tr>
<tr id="sl_svn18111_18" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4535: Hover still does not work perfectly in IE.</td></tr>
<tr id="sl_svn18111_19" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4676: Unable to fire javascript events into SVG's. </td></tr>
<tr id="sl_svn18111_20" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4320: Impossible to IE run tests in parallel via TestNG.</td></tr>
<tr id="sl_svn18111_21" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4309: 'Could not convert Native argument arg 0' error with Firefox.</td></tr>
<tr id="sl_svn18111_22" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4593: Alert.accept() Cancels the Resend Alert/Dialog Box.</td></tr>
<tr id="sl_svn18111_23" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4321: Upgrade HtmlUnitDriver to HtmlUnit 2.10.</td></tr>
<tr id="sl_svn18111_24" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4639: Webdriver 2.25 fails to quit on Windows.</td></tr>
<tr id="sl_svn18111_25" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 3774: New SafariDriver sessions do not come with a clean profile.</td></tr>
<tr id="sl_svn18111_26" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4375: Executing javascript hangs Firefox.</td></tr>
<tr id="sl_svn18111_27" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4203: Java SafariDriver has limited websocket frame size.</td></tr>
<tr id="sl_svn18111_28" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4165: WebDriver fails on a machine with no IP address.</td></tr>
<tr id="sl_svn18111_29" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 3969: SafariDriver should auto-dismiss alerts.</td></tr>
<tr id="sl_svn18111_30" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18111_31" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">WebDriverJS:</td></tr>
<tr id="sl_svn18111_32" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4648: findElement errros not helpful.</td></tr>
<tr id="sl_svn18111_33" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4687: webserverjs cannot find module in node.js.</td></tr>
<tr id="sl_svn18111_34" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4649: Wrong Content-Length calculation in webdriverjs.</td></tr>
<tr id="sl_svn18111_35" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4425: Webdriver.js regression: webdriver.By.* selectors defect when</td></tr>
<tr id="sl_svn18111_36" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">using Node.js.</td></tr>
<tr id="sl_svn18111_37" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;"><br /></td></tr>
<tr id="sl_svn18111_38" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">Grid:</td></tr>
<tr id="sl_svn18111_39" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4433: NPE at grid launch if invalid servlet class name is specified.</td></tr>
<tr id="sl_svn18111_40" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 4526: elenium node stop responding when there are 2 or more tests</td></tr>
<tr id="sl_svn18111_41" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">waiting for a specific node.</td></tr>
<tr id="sl_svn18111_42" style="margin: 0px; padding: 0px;"><td class="source" style="margin: 0px; padding: 0px 0px 0px 4px; vertical-align: top;">* FIXED: 2549: "-role hub" doesn't allow Firefox to starts.
---</td></tr>
</tbody></table>
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-3711719207541316482012-11-01T22:00:00.000+05:302012-11-02T17:50:32.271+05:30Webdriver - Display Browser Version and Name<div dir="ltr" style="text-align: left;" trbidi="on">
Webdriver - Display Browser Version and Name.<br />
<br />
Tests are getting executed on different browsers, some time getting confused with the browser name and version of the test results, so I have implemented following code to make an entry in the log file.<br />
<br />
String script = "return navigator.appName;";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Temp = (String) ((JavascriptExecutor) driver).executeScript(script);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Print(Temp);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>script = "return navigator.appVersion;";<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Temp = (String) ((JavascriptExecutor) driver).executeScript(script);<br />
<span class="Apple-tab-span" style="white-space: pre;"> </span>Print(Temp);<br />
script = "return navigator.platform;";<br />
Print((String) ((JavascriptExecutor) driver).executeScript(script));<br />
<br />
Print() is a user defined method created in our framework, to know more details select this <a href="http://bharath-marrivada.blogspot.in/search/label/Selenium%20Web%20driver%20framework%20using%20Page%20Objects%20and%20Keywords">link</a>. <br />
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-15601005895588181062012-10-14T18:11:00.000+05:302012-10-21T11:02:48.413+05:30Webdriver - Modal dialog support<div dir="ltr" style="text-align: left;" trbidi="on">
Webdriver modal dialog support<br />
<br />
<a href="http://bharath-marrivada.blogspot.in/2012/01/webdriverselenium-modelpopup-handling.html">How to handle IE modal pop-up in Selenium Webdriver?</a><br />
<br />
Modal dialog? When it is called system displays a dialog that user need to deal with before interacting with the rest of the page.<br />
<br />
<div class="MsoNormal">
We can handle the modal dialog through selenium2.0 (Webdriver) in IE, but at few places Selenium is getting stuck with the
modal dialog, need to use alternative approach to over come this limitations ( Java Robot class).
Currently, <a href="http://code.google.com/p/selenium/issues/detail?id=284#c51">Selenium don’t support the modal dialog in Firefox, Safari, Chrome and Opera.</a> </div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
IE support the modal dialog from Version 4.</div>
<div class="MsoNormal">
Firefox added the support from Version 3.</div>
<div class="MsoNormal">
Safari added the support from version 5.1.</div>
<div class="MsoNormal">
Opera don’t support.</div>
<div class="MsoNormal">
Chrome support from initial versions, but has following bugs
<b><span style="background-color: #e5ecf9; background-position: initial initial; background-repeat: initial initial; font-family: Arial, sans-serif; font-size: 13pt;">Issue<span class="apple-converted-space"> </span></span></b><a href="http://code.google.com/p/chromium/issues/detail?id=16045"><b><span style="color: #0000cc; font-family: "Arial","sans-serif"; font-size: 13.0pt;">16045</span></b></a>,
<b><span style="background-color: #e5ecf9; background-position: initial initial; background-repeat: initial initial; font-family: Arial, sans-serif; font-size: 13pt;">Issue<span class="apple-converted-space"> </span></span></b><a href="http://code.google.com/p/chromium/issues/detail?id=42939"><b><span style="color: #0000cc; font-family: "Arial","sans-serif"; font-size: 13.0pt;">42939</span></b></a>.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b>Other issues:<o:p></o:p></b></div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]-->1.<span style="font-size: 7pt;">
</span><!--[endif]-->Modal dialog as popup – Firefox, chrome and
safari consider it as popup and default block it, user need to turn it on.</div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]-->2.<span style="font-size: 7pt;">
</span><!--[endif]-->Debugging – We can’t debug the code even on the
latest IE9. Firefox, safari and chrome will let us open the Firebug/Web
inspector but difficult to debug.</div>
<div class="MsoListParagraph" style="mso-list: l0 level1 lfo1; text-indent: -.25in;">
<!--[if !supportLists]-->3.<span style="font-size: 7pt;">
</span><!--[endif]-->Mobile – Currently no mobile browser support
modal dialog.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
It is an old API, but it has been added to the HTML5 spec as there are many old applications written using modal dialog, better to eliminate the “Modal dialog” in the new implementation where multi browser support is required and
usefollowing better options.</div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<a href="http://raventools.com/blog/create-a-modal-dialog-using-css-and-javascript/">http://raventools.com/blog/create-a-modal-dialog-using-css-and-javascript/</a></div>
<div class="MsoNormal">
<a href="http://jquerytools.org/demos/overlay/modal-dialog.html">http://jquerytools.org/demos/overlay/modal-dialog.html</a></div>
<div class="MsoNormal">
<a href="http://jqueryui.com/demos/dialog/">http://jqueryui.com/demos/dialog/</a></div>
<div class="MsoNormal">
<a href="http://livedocs.dojotoolkit.org/dijit/Dialog">http://livedocs.dojotoolkit.org/dijit/Dialog</a></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
---</div>
</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com2tag:blogger.com,1999:blog-2411958903224745637.post-35857356180172253382012-10-03T23:17:00.002+05:302012-10-05T12:55:13.464+05:30webdriver - modal dialog present<div dir="ltr" style="text-align: left;" trbidi="on">
selenium webdriver modal dialog present<br />
<br />
Recently we came across a situation where there is no modal dialog or alert, but selenium through "modal dialog present" exception, this issue occurred when there are multiple alerts in the same transaction.<br />
<br />
Even the JavaScript executor is not working at this stage, I think Selenium team need to remove the "Modal Dialog Present" validation from the executor, so that when can proceed ahead by running code through JavaScript .<br />
<br />
In order to overcome this situation we have used <span style="background-color: yellow;">alert.dismiss()</span>, so that selenium proceeded ahead without any exception.<br />
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com9tag:blogger.com,1999:blog-2411958903224745637.post-46821606747333142602012-09-23T13:12:00.000+05:302012-09-26T13:12:52.978+05:30Webdriver change-log URL<div dir="ltr" style="text-align: left;" trbidi="on">
Webdriver change-log URL<br />
<br />
<a href="http://code.google.com/p/selenium/source/browse/trunk/java/CHANGELOG">http://code.google.com/p/selenium/source/browse/trunk/java/CHANGELOG</a>
<br />
<br />
This link will help you understand the changes and bug-fixes made to Webdriver.<br />
<br />
--- </div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-16284818488002534192012-09-19T18:52:00.000+05:302012-09-20T19:13:21.235+05:30Webdriver NodeJS<div dir="ltr" style="text-align: left;" trbidi="on">
What languages do Selenium2/ Webdriver support ?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-d02P9CX-qaM/UFsTvcmDd9I/AAAAAAAAEiQ/BkJ79mXAvc4/s1600/Selenium+Languages.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="122" src="http://3.bp.blogspot.com/-d02P9CX-qaM/UFsTvcmDd9I/AAAAAAAAEiQ/BkJ79mXAvc4/s640/Selenium+Languages.png" width="640" /></a></div>
<br />
I think many people are not aware of <a href="http://nodejs.org/">NodeJS</a>.<br />
<br />
Selenium server speaks a simple language called the <a href="http://code.google.com/p/selenium/wiki/JsonWireProtocol">Webdriver Protocol</a>.<br />
We have NodeJS module called <a href="https://github.com/admc/wd">wd</a> that has implemented Webdriver protocol in JavaScript.<br />
<br />
What is NodeJS? Below screen shot can help you understand<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://venturebeat.files.wordpress.com/2012/08/nodejs.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="http://venturebeat.files.wordpress.com/2012/08/nodejs.jpg" /></a></div>
<br />
<br />
<br />
---<br />
<br /></div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-43192187331139668182012-09-13T17:56:00.000+05:302012-09-13T17:56:31.320+05:30Smartest smart phone?<div dir="ltr" style="text-align: left;" trbidi="on">
Smartest smart phone?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-GNZe2_rmK-M/UFHQxj9ikrI/AAAAAAAAEh8/dGlAAMxQNrs/s1600/Smartest+smartphone.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="http://3.bp.blogspot.com/-GNZe2_rmK-M/UFHQxj9ikrI/AAAAAAAAEh8/dGlAAMxQNrs/s640/Smartest+smartphone.png" width="640" /></a></div>
<br />
<br />
---</div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com0tag:blogger.com,1999:blog-2411958903224745637.post-40331414076824969782012-09-09T18:36:00.000+05:302012-10-05T17:55:15.634+05:30SeleniumWebdriver - Page objects Implementation - Part 2<div dir="ltr" style="text-align: left;" trbidi="on">
SeleniumWebdriver - Page objects Implementation - Part 2
<br />
<br />
<a href="http://bharath-marrivada.blogspot.in/2012/03/seleniumwebdriver-pageobjects.html">SeleniumWebdriver - Page objects Implementation - Part 1</a><br />
<br />
After numerous requests, today I have got time to remove the unnecessary and confidential code and upload the entire project.<br />
<br />
This framework is built by integrating Selenium2 + TestNG + ANT + VB Script.<br />
<br />
It has taken lot of time to develop this framework, as Selenium is open-source I would like to dedicate this framework to the open-source community. Thanks a lot to <a href="http://code.google.com/p/selenium/people/list">Selenium Team</a> for developing awesome tool.<br />
<br />
<br />
<a href="https://docs.google.com/open?id=0B-t1R1zkSszVbEViLUkzZGJER1E" target="_blank">Download Link (Extract the files into a folder, Elclipse can't extract the files)</a><br />
<br />
1. Create new project "MercuryTours" in eclipse, download the rar file and extract directly into new MercuryTours folder of your corresponding work space.<br />
2. Add the Selenium libraries using configure build path and refresh the project. If there are no error, every thing went fine, attaching the screen shot below.<br />
<a href="http://bharath-marrivada.blogspot.in/2012/07/setup-seleniumwebdriver-windows.html">How to setup Selenium?</a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://3.bp.blogspot.com/-BWUgW34uwWw/UE3tYImgLzI/AAAAAAAAEhg/1Vy3uiUcms4/s1600/Mercury+tours+project.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="640" src="http://3.bp.blogspot.com/-BWUgW34uwWw/UE3tYImgLzI/AAAAAAAAEhg/1Vy3uiUcms4/s640/Mercury+tours+project.png" width="460" /></a></div>
<br />
<br />
3. If you have ANT setup, you can directly run the entire project by selecting the "run", attaching the screen shot below OR you can run the test directly in the eclipse by selecting any class or method and hit play.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-ZJrxK_ocehc/UE3urpv98JI/AAAAAAAAEho/hjlXxVgBbfo/s1600/Mercury+tours+ANT.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="282" src="http://4.bp.blogspot.com/-ZJrxK_ocehc/UE3urpv98JI/AAAAAAAAEho/hjlXxVgBbfo/s640/Mercury+tours+ANT.png" width="640" /></a></div>
<br />
<br />
4. Test results will be automatically stored the following location "C:\Selenium2_Results\MercuryTours" with time stamp. It will automatically send email notifications, update the details in the "SendEmail.vbs".<br />
<br />
I hope above framework will be used for those people who are planning to implement keyword driven framework using page objects.<br />
<br />
There are lot of things to explain in this framework, I would suggest to go through the <a href="http://bharath-marrivada.blogspot.in/2012/03/seleniumwebdriver-pageobjects.html">part1</a> and explore the code.<br />
<br />
Good Luck!<br />
<br />
<br />
<br />
<br /></div>
Bharath Marrivadahttp://www.blogger.com/profile/12485730458517413391noreply@blogger.com3