Sofia Kenin will play either Romania’s fourth seed Simona Halep or unseeded Garbine Muguruza in Saturday’s final.