Here is the Html code

<document>
<html>
<head>
<body>
<main>
<div class="content-wrap">
<!--Header-->
<header>
<nav id="airtelMegaMenu" class="navbar navbar-default dropdown">
<div class="container-fluid text-right top-smal-menu">
<div class="container-fluid large-menu">
<!-- ==== Label 2 Menus for desktop ==== -->
<!-- mega-menu-pay-recharge -->
<section id="mega-menu-pay-recharge" class="mega-menu-container 
mega-menu-pay-recharge mega-menu-open">
<a class="mega-menu-close close" href="javascript:void(0);">
<article>
<div class="mega-dropdown-menu">
<!-- ==== Label 2 Menu || Sub Menu for Pay and recharges ==== -->
<ul>
<li>
<li class="link-active">
<a module-id="common" data-i18n="pay_bill" href="javascript:void(0);">
Pay Bill</a>
<!-- ==== Label 3 Menu || Sub Menu for Pay bill ==== -->
<ul>
</li>
<li class="">
<li class="">
</ul>
</div>
</article>
</section>
<!-- mega-menu-pay-recharge End-->
<!-- mega-menu-get-->
<section id="mega-menu-get" class="mega-menu-container mega-menu-get">
<!-- mega-menu-get -->
<!-- mega-menu-BANK WITH US-->
<section id="mega-menu-bank" class="mega-menu-container mega-menu-bank">
<!-- mega-menu-BANK WITH US-->
<!-- ==== Label 2 Menus for desktop ==== -->
<!-- ==== Label 2 Menus for Mobile ==== -->
<!-- Mobile mega menu-->
<div id="mobile-mega-menu">
<!-- mega-menu-Bank-mobile -->
<section id="mega-menu-pay-recharge" class="mega-menu-container 
mega-menu-bank-mobile">
<a class="mega-menu-close back visible-sm visible-xs" href="
javascript:void(0);">
<article>
<div class="mega-dropdown-menu">
<ul>
<li>
<li class="link-active">
<a module-id="common" data-i18n="savings_account" href="javascript:void(0);"
>Savings Account</a>
<ul>
</li>
<li>
</ul>
</div>
</article>
</section>
<!-- mega-menu-Bank-mobile-->
<!-- mega-menu-pay-bill-mobile -->
<section class="mega-menu-container mega-menu-pay-bill">
<section class="mega-menu-container mega-menu-recharge">
<!-- mega-menu-pay-bill-mobile End-->
<!-- mega-menu-Add-money -->
<section class="mega-menu-container mega-menu-add-money">
<!-- mega-menu-Add-money End-->
<!-- mega-menu-Get for me-->
<section class="mega-menu-container mega-menu-get-for-me">
<!-- mega-menu-Get for me End-->
<!-- mega-menu-for-home-mobile -->
<section class="mega-menu-container mega-menu-get-for-home">
<!-- mega-menu-for-home-mobile End-->
<!-- mega-menu-exciting-offers-mobile -->
<section class="mega-menu-container mega-menu-exciting-offers">
<!-- mega-menu-exciting-offers-mobile End-->
<!-- mega-menu-Bank with us mobile -->
<section class="mega-menu-container mega-menu-savings-account">
<!-- mega-menu-Bank with us mobile End-->
<!-- mega-menu-money-wallet mobile -->
<section class="mega-menu-container mega-menu-money-wallet">
<!-- mega-menu-money-wallet mobile End-->
</div>
<!--Mobile mega menu-->
<!-- ==== Label 2 Menus for Mobile End==== -->
</nav>
</header>
<div itemtype="http://schema.org/WebSite"; itemscope="">
<section class="banner padding-top-0 padding-bottom-0 airtel-app bg-white 
home-banner overflow-hidden airtelwow animated">
<div class="airtelwow animated">
<div class="flex-container airtelwow">
<div class="flex-container bg-white airtelwow">
<div class="airtelwow">
<div class="flex-container bg-white airtelwow">
<div class="flex-container bg-white airtelwow">
<!--footer-->
<footer>
</div>
</main>
<script async="" src="
app/libs/edited/homepage/airtel-jqlite.js?version=1490500432236"/>
<script async="" src="
app/libs/edited/homepage/lazyloading.js?version=1490500432236"/>
<script type="text/javascript">var _gaq = _gaq || []; 
    _gaq.push(['_setAccount', 'UA-35987772-1']); 
    _gaq.push(['_setDomainName', 'airtel.in']); 
    _gaq.push(['_setAllowLinker', true]); 
    _gaq.push(['_setAllowAnchor', true]); 
    _gaq.push(['_addIgnoredRef', 'airtel.in']); 
    _gaq.push(['_trackPageview']);     (function() { 
     var ga = document.createElement('script'); ga.type = 'text/javascript'; 
ga.async = true; 
    //ga.src = ('https:' == document.location.protocol ? 'https://' : 
'http://') + 'stats.g.doubleclick.net/dc.js'; 
    ga.src = ('app/libs/edited/homepage/dc.js?version=1490500432236'); 
        var s = document.getElementsByTagName('script')[0]; 
s.parentNode.insertBefore(ga, s); 
    })();</script>
<script type="text/javascript"/>
</body>
</html>
</document>

On Monday, March 27, 2017 at 2:13:16 PM UTC-7, Titus Fortner wrote:
>
> I'd need to see the html to see why it works for one of the locator 
> strategies, but not the other.
>
> On Mon, Mar 27, 2017 at 1:21 PM, Raja gopalan <[email protected] 
> <javascript:>> wrote:
>
>> Here is the code
>>
>>
>>
>> require 'watir'
>> class AirTelRecharge
>>  def initialize
>>  caps = Selenium::WebDriver::Remote::Capabilities.firefox(marionette: 
>> false)
>>  @b=Watir::Browser.new :firefox, desired_capabilities: caps, profile: 
>> "default"
>>  @b.goto "https://www.airtel.in/";
>>  @[email protected]
>>  @driver.manage.timeouts.implicit_wait=10
>>  end
>>
>>  def execute
>>  @b.element(:text, 'Pay & Recharge').click
>>  @driver.find_element(:link,'Recharge').click #Here is the problem this 
>> code doesn't work for @b.element(:text,'Recharge').click
>>  end
>> end
>>
>> AirTelRecharge.new.execute
>>
>>
>>
>> On Monday, March 27, 2017 at 8:48:37 AM UTC-7, Titus Fortner wrote:
>>>
>>> Those two locators should find the same element, but it appears it is 
>>> not if one says the element exists but is not visible and the other says it 
>>> is visible. To figure out why it is finding a different element, I'd need 
>>> to see the underlying html.
>>>
>>>
>>> On Sunday, March 26, 2017 at 11:38:52 PM UTC-5, Raja gopalan wrote:
>>>>
>>>> Link is clearly visible to click
>>>>
>>>> If I write 
>>>>
>>>> @b.link(:text,'Recharge').click
>>>>
>>>> WATIR converts this code into 
>>>>
>>>> @driver.find_element(:xpath,"//a[normalize-space()='Recharge']").click
>>>>
>>>> but this selenium code says that element is not visible, So it's not 
>>>> working. 
>>>>
>>>> If I write the following selenium code
>>>>
>>>> @driver.find_element(:link,'Recharge').click
>>>>
>>>> It works properly. 
>>>>
>>>> Do you understand me now?
>>>>
>>>>
>>>>
>>>> On Sunday, March 26, 2017 at 3:05:51 PM UTC-7, Titus Fortner wrote:
>>>>>
>>>>> Is Watir finding a different link? Or is Selenium just allowing the 
>>>>> user to click a link that is not displayed?
>>>>>
>>>>> There are definitely ways that Watir can optimize its locator 
>>>>> strategies, but that part of the code is not trivial to dig into. As 
>>>>> always, pull requests are welcome.
>>>>>
>>>>> On Sun, Mar 26, 2017 at 12:18 PM, Raja gopalan <[email protected]> 
>>>>> wrote:
>>>>>
>>>>>>
>>>>>> I have written the following selenium code to click this link
>>>>>>
>>>>>> @driver.find_element(:link,'Recharge').click
>>>>>>
>>>>>> It successfully clicks the line
>>>>>>
>>>>>>
>>>>>> I have written the same code in WATIR as shown below
>>>>>>
>>>>>>
>>>>>> @b.link(:text,'Recharge').click
>>>>>>
>>>>>>
>>>>>> but it throws element not present error
>>>>>>
>>>>>>
>>>>>> I checked out how this above code works, this above code forms this 
>>>>>> xpath at the end 
>>>>>>
>>>>>>
>>>>>> "//a[normalize-space()='Recharge']"
>>>>>>
>>>>>>
>>>>>> So I suspected that this xpath might be the reason, So I have written 
>>>>>> the below selenium code using this xpath, As I expected the same error 
>>>>>> was 
>>>>>>
>>>>>> thrown by selenium as well(element is not visible)
>>>>>>
>>>>>>
>>>>>> @driver.find_element(:xpath,"//a[normalize-space()='Recharge']").click
>>>>>>
>>>>>> So what I think is, WATIR should refrain forming the xpath when b.link 
>>>>>> is called, they can directly convert this code to 
>>>>>> @driver.find_element(:link,'Recharge') but they
>>>>>>
>>>>>> can form the xpath when b.element(:text,'Recharge') is called
>>>>>>
>>>>>>
>>>>>> any suggestion?
>>>>>>
>>>>>>
>>>>>> -- 
>>>>>> -- 
>>>>>> Before posting, please read http://watir.com/support. In short: 
>>>>>> search before you ask, be nice.
>>>>>>  
>>>>>> [email protected]
>>>>>> http://groups.google.com/group/watir-general
>>>>>> [email protected]
>>>>>>
>>>>>> --- 
>>>>>> You received this message because you are subscribed to the Google 
>>>>>> Groups "Watir General" group.
>>>>>> To unsubscribe from this group and stop receiving emails from it, 
>>>>>> send an email to [email protected].
>>>>>> For more options, visit https://groups.google.com/d/optout.
>>>>>>
>>>>>
>>>>> -- 
>> -- 
>> Before posting, please read http://watir.com/support. In short: search 
>> before you ask, be nice.
>>  
>> [email protected] <javascript:>
>> http://groups.google.com/group/watir-general
>> [email protected] <javascript:>
>>
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "Watir General" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
-- 
Before posting, please read http://watir.com/support. In short: search before 
you ask, be nice.

[email protected]
http://groups.google.com/group/watir-general
[email protected]

--- 
You received this message because you are subscribed to the Google Groups 
"Watir General" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to