Is it possible to send browser properties via argument. My loop fails to recognize the browser property mentioned in navigation activity.
Also, how can I check if I have value in browser variable?
Thanks for help in advance
Is it possible to send browser properties via argument. My loop fails to recognize the browser property mentioned in navigation activity.
Also, how can I check if I have value in browser variable?
Thanks for help in advance
Hi,
you can send browser variable in an argument in the same way as any other variable.
You can check if it’s empty with for example (if myBrowser IsNot Nothing). This returns true if myBrowser has value.
-Topi
Hi MGDL,
A quick question whether the solution proposed by Topi worked fine with you? I am trying to do a similar thing and keep getting error message whenever I try to get UiBrowser Output variable assigned to the Argument of UiPath.Core.Browser type.
Hi Pawel,
What error are you receiving?
Hi ovi,
Thanks for reaching out - I received following information:
An error has occured
Source: Newtonsoft.Json
Message: Error getting value from ‘Element’ on ‘UiPath.Core.Browser’.
Exception Type: JsonSerializationException
Newtonsoft.Json.JsonSerializationException: Error getting value from ‘Element’ on ‘UiPath.Core.Browser’. —> System.Runtime.InteropServices.COMException: Uninitialized UI node.
at UiPath.UiBrowserClass.get_node()
at UiPath.Core.Browser.get_Element()
at GetElement(Object )
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
— End of inner exception stack trace —
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CalculatePropertyDetails(JsonProperty property, JsonConverter& propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target, Boolean& useExistingValue, Object& currentValue, JsonContract& propertyContract, Boolean& gottenCurrentValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateDictionary(IDictionary dictionary, JsonReader reader, JsonDictionaryContract contract, JsonProperty containerProperty, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.SetPropertyValue(JsonProperty property, JsonConverter propertyConverter, JsonContainerContract containerContract, JsonProperty containerProperty, JsonReader reader, Object target)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.PopulateObject(Object newObject, JsonReader reader, JsonObjectContract contract, JsonProperty member, String id)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateObject(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.CreateValueInternal(JsonReader reader, Type objectType, JsonContract contract, JsonProperty member, JsonContainerContract containerContract, JsonProperty containerMember, Object existingValue)
at Newtonsoft.Json.Serialization.JsonSerializerInternalReader.Deserialize(JsonReader reader, Type objectType, Boolean checkAdditionalContent)
at Newtonsoft.Json.JsonSerializer.DeserializeInternal(JsonReader reader, Type objectType)
at Newtonsoft.Json.JsonConvert.DeserializeObject(String value, Type type, JsonSerializerSettings settings)
at Newtonsoft.Json.JsonConvert.DeserializeObject[T](String value, JsonSerializerSettings settings)
at UiPath.Shared.JsonParser.DeserializeObject[T](String jsonValue)
at UiPath.Models.UiPathDuplexProxy.<>c__DisplayClass21_0.b__0()
at System.Threading.Tasks.Task.InnerInvoke()
at System.Threading.Tasks.Task.Execute()
Browser
objects are not serializable, meaning they can’t be passed as arguments between workflows that are invoked via LaunchWorkflowInteractive
or InvokeWorkflow
with Isolated = True
.
You could pass the selector and reattach at the other end of the invoke, if you need to use one of those.
Thanks for showing me the right direction.