hi, sorry, that was not done properly, here is the html file <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> <li class="link-active"> <a module-id="common" data-i18n="recharge" href="javascript:void(0);"> Recharge</a> <!-- ==== Label 3 Menu || Sub Menu for Recharge ==== --> <ul> </li> <li> </ul> </div> </article> </section> <!-- mega-menu-pay-recharge End--> <!-- mega-menu-get-->
On Monday, March 27, 2017 at 9:32:57 PM UTC-7, Titus Fortner wrote: > > This html doesn't have any links with text equal to "Recharge" > > > On Monday, March 27, 2017 at 11:13:03 PM UTC-5, Raja gopalan wrote: >> >> 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]> >>> 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] >>>> 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] 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.
