Forum Discussion

bnoyahr's avatar
bnoyahr
New Contributor
2 years ago
Solved

Function to click on link using xpath

I am trying to write a simple function to click on a link using the xpath to the link. I am getting a runtime error on the browser.Page.FindElement - can you please point me in the right direction.  Many thanks.

 

function selectApplyPermitLink()
{
let browser = Aliases.browser;
page = browser.Page("*");
//I would like to have the code use the xpath shown below to click on the link..
browser.Page.FindElement("//a[.='Apply for a permit']").Click();
}

  • Can you try something like this (see Page Object),

    function Example()
    {
    	Browsers.Item(btEdge).Run("http://smartbear.com/");
    	var page = Sys.Browser(btEdge).Page("*");
    	page.FindElement("//a[.='Apply for a permit']").Click();
    }

    Change the URL; use either Find() or FindElement().

     

    Note, I only suggested the record actions, so that you can see the script that TC generates - to see the XPath query.

  • bnoyahr's avatar
    bnoyahr
    2 years ago

    Thank you very much. It works.

4 Replies

  • rraghvani's avatar
    rraghvani
    Champion Level 3

    Can you try something like this (see Page Object),

    function Example()
    {
    	Browsers.Item(btEdge).Run("http://smartbear.com/");
    	var page = Sys.Browser(btEdge).Page("*");
    	page.FindElement("//a[.='Apply for a permit']").Click();
    }

    Change the URL; use either Find() or FindElement().

     

    Note, I only suggested the record actions, so that you can see the script that TC generates - to see the XPath query.

    • bnoyahr's avatar
      bnoyahr
      New Contributor

      Thank you very much. It works.

  • rraghvani's avatar
    rraghvani
    Champion Level 3

    If you record your actions, then convert the test to scripts. You will then see the actual code the TC has generated.

    • bnoyahr's avatar
      bnoyahr
      New Contributor

      Thanks for you response. Yes... I did record it, but even this code does not work when run (see below). Also I am trying to build a framework using xpath, rather than record and playback.

       

      function Test1()
      {
      Browsers.Item(btEdge).Navigate("https://blah-qa.powerappsportals.com/");
      let browser = Aliases.browser;
      browser.BrowserWindow.Maximize();
      browser.pageFilmPermitHomePageCustomPort.linkApplyForAPermit.Click();
      }