switch to 用法很复杂?其实掌握这些就很够用!

誒,大家今天跟大家聊聊這個「switch to」的用法,說真的,這玩意兒我在實作中也是踩不少坑,今天就來跟大家好好分享一下。

摸索過程

一開始,我是看到網路上有人說這個可以用來切換網頁,還可以用來處理彈出視窗,我就想著,這還不簡單?直接拿來用不就好嘛

  • 第一次嘗試,我想切換到一個新的網頁,就直接寫 *_*(window_name)
  • 結果?程式直接報錯!我整個傻眼,這是啥情況?
  • 後來仔細看看錯誤訊息,又回去查查資料,才發現原來這個 window_name 不是我想像中那麼簡單的東西。

我的理解

搞半天,我才弄明白,這個 window_name 其實是指視窗的控制代碼,每個打開的視窗都有一個唯一的控制代碼。如果你不先取得這個控制代碼,直接用名字去切換,程式當然找不到!

要先用一些方法,像是 *_handles 去取得所有打開的視窗的控制代碼,然後再判斷哪個控制代碼才是你要切換的那個視窗。這下子,總算可以正確切換到新的網頁!

再來就是處理彈出視窗,這個倒是相對簡單一些。我一開始也是直接用 ,這次倒是沒報錯,但是後續操作的時候,程式又卡住,完全沒有反應。這是怎麼回事?

後來我才想通,原來用 之後,你的操作焦點就跑到那個彈出視窗上,如果你不做任何操作,像是點擊「確定」或「取消」按鈕,程式就會一直卡在那邊等你。記得在切換到彈出視窗之後,一定要加上相對應的操作,例如 表示點擊「確定」,或者 表示點擊「取消」。

教訓

經過這一番折騰,我算是對「switch to」的用法有一些心得。總結下來就是:

  • 切換網頁要用視窗的控制代碼,不能直接用名字。
  • 切換到彈出視窗後,記得要進行相對應的操作,否則程式會卡住。

而且還發現一個大坑。如果沒使用 switch_*(),程式會一直停留在原來的頁面找元素,這樣新的頁面元素當然找不到!白白浪費我好多時間。

希望大家看我的分享,以後遇到類似的問題可以少走一些彎路。說真的,這些東西還是要自己親自實作過,踩過坑,才能真正理解和掌握。今天就分享到這裡,希望對大家有幫助!

愛英語

首頁 英文水平測試 0元領取試聽課