Thank you cunderw
I ran your code, the log message says "Unable to perform the action because the control is invisible." , no error before that.
I don't believe it is the time issue. the same object can do Click() but right after that cannot ClickItem(). I think it is something to do with the ClickItem(). I have found that i had to do ClickItem() twice to make sure the action really happens it the other 3 scripts. Also another project has the same issue with ClickItem() sometimes get skipped as well.
When I have 2 lines of ClickItem()s, if they both work, the ClickItem() happens twice. The log message shows 2 Event.
When one does not work, (usually the first line) it just get skipped and the second line does the ClickItem(), with no error message. The log message only shows 1 Event.