Forum Discussion

tvklovesu's avatar
tvklovesu
Frequent Contributor
2 years ago

object not found when using a variable in keyword test On screen action

Hi,

I was trying to find an element and click on it using the keyword test and on screen action. But the object is not found error is displayed.

The variable I am passing here is "ProjectSuite.Variables.i". But the same thing when I use in script mode it is working fine. Not sure what's the problem here.

 

Aliases.RavenDarttsPge.findElement("(//div[contains(@class,'MuiGrid-root MuiGrid-item') and contains(.,'Available columns')]//div[@role='list']//div[contains(@id,'transfer-list-all-item')])[" + ProjectSuite.Variables.i + "]")

 

Keyword test

error message

The "Aliases.RavenDarttsPge.findElement("(//div[contains(@class,'MuiGrid-root MuiGrid-item') and contains(.,'Available columns')]//div[@role='list']//div[contains(@id,'transfer-list-all-item')])[" + ProjectSuite.Variables.i + "]")" object was not found
 
The issue here is that variable is not replaced with the value when I execute. This is working fine if I use the variable for any class name, ID or any other attribute.

 

  • You can not use variable substitution in XPath query. However, you can do something like this, construct your string first

    var xpath = aqString.Format("//div[@role='list']//div[contains(@id,'%s')", ProjectSuite.Variables.i);

    where %s will be replaced. Then pass it to,

    Aliases.RavenDarttsPge.findElement(xpath)
  • Thanks for your tip,

    I did not use the aq string, but used the code expression while assigning the variable value as follows and now it works.

     

     

  • rraghvani's avatar
    rraghvani
    Champion Level 3

    You can not use variable substitution in XPath query. However, you can do something like this, construct your string first

    var xpath = aqString.Format("//div[@role='list']//div[contains(@id,'%s')", ProjectSuite.Variables.i);

    where %s will be replaced. Then pass it to,

    Aliases.RavenDarttsPge.findElement(xpath)
    • tvklovesu's avatar
      tvklovesu
      Frequent Contributor

      Thanks for your tip,

      I did not use the aq string, but used the code expression while assigning the variable value as follows and now it works.