Contributions
Re: Python aqConvert.StrToInt not working: argument is not a number
Hi anumpamchanti, thanks for your reply. That´s pretty strange the script is working on your machine. Meanwhile I found the reason for this problem, but didn´t find a solution, yet. After I counted the number of characters of the string 'value' with len(value) I received a number of 4 characters. So I read out every single character with a for-loop: for i in range(len(value)): Log.Message("value[i]" + aqConvert.VarToStr(value[i])) This is the result I get: So the first and the last character seem to be empty, but they are not. I found out, they are unicode characters, not showing up in the log-message. So the string 'value' is of type unicode containig the "25" between those characters: value = "\u202d25\u202c" These characters are special unicode formatting characters, for example '\u202d' is a left-to-right-override character. In the if-clause I changed the "25" to "\u202d25\u202c" and it worked, but that´s not really a proper solution: if value == "\u202d25\u202c": Log.Message("Result is 25") Have you got any idea how to get rid of these characters. Is there a way to convert the unicode string into something manageable? Regards, Christian3KViews2likes2CommentsRe: Python aqConvert.StrToInt not working: argument is not a number
Hi Alex, thanks for you reply. The value is a string of '25' the result is not '25,0' or something like that, the 'value' contains '25' as a string. In my understanding it can´t be the decimal seperator comma in my locale (see screenshots down below). Furthermore, I checked if there are any space characters in the string 'value', for example value = ' 25 ', but I couldn´t find any. Just to make sure there are no space characters in it, I replaced space characters using value = aqString.Replace(value, ' ', '') but the problem still remains unsolved: res = Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Die_Anzeige_lautet_0_.textContainer.normalOutput value = res.Text # check the type of variable 'value' TypeID = aqObject.GetVarType(value) if TypeID == varOleStr: str = "String" # -> this is the type of variable 'value' it return in the Log.Message() Log.Message("TypeID: " + aqConvert.IntToStr(TypeID) + ", Type: " + str + ", Value: " + value) if aqConvert.StrToInt(value) == 25: # raises an error! Log.Message("Result is 25") else: Log.Message("Result is NOT 25") _________________________________________________________________________________________ I also tried the following possibilities using the string in the if-clause. It doesn´t raise an error but the result is not as expected: if value == "25": Log.Message("Result is 25") else: Log.Message("Result is NOT 25") # not the expected result _________________________________________________________________________________________ In the following case I understand that the result is not '25,0' the 'value' contains '25'. In my understanding it can´t be the decimal seperator comma in my locale. if value == "25,0": Log.Message("Result is 25") else: Log.Message("Result is NOT 25") # expected Result _________________________________________________________________________________________ Just to make sure, I tried all possibilites... if value == "25.0": Log.Message("Result is 25") else: Log.Message("Result is NOT 25") # expected Result _________________________________________________________________________________________ if aqConvert.StrToFloat(value) == 25.0: # raises an error, expected Result Log.Message("Result is 25") else: Log.Message("Result is NOT 25") I´m really stuck in the mud. I hope you can help me. Thanks in advance.3.1KViews0likes6CommentsPython aqConvert.StrToInt not working: argument is not a number
Hi, I´m very new to TestComplete and trying a simple Keyword-test with the Windows calculator clicking 5 * 5 = 25. I run the test and converted the test to a Python script. All I´m trying to do is to convert the result from the output (in this case 25) from a string to an integer using aqConvert.StrToInt. I already checked the variable type with aqObject.GetVarType. The variable is definetly a string. TryingaqConvert.VarToInt. also raises an error. Here´s the code snippet I use and i also added a screenshot of the error. Can anyone please help me, what´s going wrong here? I can´t see any mistakes in my script. def Test1(): # calculate 5 * 5 with Windows-Calculator (result = 25) #Clicks the 'F_nf' object. (the Five-Button.Click) Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Zehnertastatur.F_nf.Click() #Clicks the 'Multiplizieren_mit' object.(the Multiply.Click) Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Standardoperatoren.Multiplizieren_mit.Click() #Clicks the 'F_nf' object. (the Five-Button.Click) Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Zehnertastatur.F_nf.Click() #Clicks the 'Gleich' object. (the Equals-Button.Click) Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Standardoperatoren.Gleich.Click() # (Equal-Button.Click) #Clicks the 'normalOutput' object. Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Die_Anzeige_lautet_0_.textContainer.normalOutput.Click(38, 37) # (the result output) # check if 'normalOutput' exists if Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Die_Anzeige_lautet_0_.textContainer.normalOutput.Exists: Log.Message("everything is fine") # it works 🙂 else: Log.Error("nothing is fine") res = Aliases.Microsoft_WindowsCalculator.Rechner.LandmarkTarget.Die_Anzeige_lautet_0_.textContainer.normalOutput value = res.Text # check the type of variable 'value' TypeID = aqObject.GetVarType(value) if TypeID == varOleStr: str = "String" # variable 'value' is a String Log.Message("TypeID: " + aqConvert.VarToStr(TypeID) + ", Type: " + str + ", Value: " + aqConvert.VarToStr(value)) # Converting the String to an Integer using aqConvert.StrToInt() test = aqConvert.StrToInt(value) ########### ->Here´s the Problem: Python runtimeerror: The argument is not a number. # check the result if test == 25: Log.Message("Result is 25") else: Log.Message("Result is NOT 25")Solved3.1KViews0likes8Comments