You said the car will not start at times. When the car "won't start" does it "crank over"? If the engine cranks over sufficiently fast enough the battery, starter and the part of the ignition switch that supplies power to the starter are OK.
If the car cranks (engine spins over) then in all likely hood you have lost spark or fuel. It hard to guess with out seeing the car first hand. Your car has a computer that controls the fuel injection and ignition system, you could have a sensor that intermittently fails, you could have a fuel pump that intermittently fails.
Your car has a main relay that is behind the left side of the dash, when cranking the engine to start the relay turns on the fuel pump, these relays fail and frequently fail intermittently. The car cranks over and fails to start, you walk away come back an hour later and the car may run for a week. It should not be too difficult to diagnose the problem "if" your mechanic can get the car in a failed state.