switch to 用法很复杂?其实掌握这些就很够用!
誒,大家今天跟大家聊聊這個「switch to」的用法,說真的,這玩意兒我在實作中也是踩不少坑,今天就來跟大家好好分享一下。
摸索過程
一開始,我是看到網路上有人說這個可以用來切換網頁,還可以用來處理彈出視窗,我就想著,這還不簡單?直接拿來用不就好嘛
- 第一次嘗試,我想切換到一個新的網頁,就直接寫
*_*(window_name)
。 - 結果?程式直接報錯!我整個傻眼,這是啥情況?
- 後來仔細看看錯誤訊息,又回去查查資料,才發現原來這個
window_name
不是我想像中那麼簡單的東西。
我的理解
搞半天,我才弄明白,這個 window_name
其實是指視窗的控制代碼,每個打開的視窗都有一個唯一的控制代碼。如果你不先取得這個控制代碼,直接用名字去切換,程式當然找不到!
要先用一些方法,像是 *_handles
去取得所有打開的視窗的控制代碼,然後再判斷哪個控制代碼才是你要切換的那個視窗。這下子,總算可以正確切換到新的網頁!
再來就是處理彈出視窗,這個倒是相對簡單一些。我一開始也是直接用 ,這次倒是沒報錯,但是後續操作的時候,程式又卡住,完全沒有反應。這是怎麼回事?
後來我才想通,原來用 之後,你的操作焦點就跑到那個彈出視窗上,如果你不做任何操作,像是點擊「確定」或「取消」按鈕,程式就會一直卡在那邊等你。記得在切換到彈出視窗之後,一定要加上相對應的操作,例如 表示點擊「確定」,或者 表示點擊「取消」。
教訓
經過這一番折騰,我算是對「switch to」的用法有一些心得。總結下來就是:
- 切換網頁要用視窗的控制代碼,不能直接用名字。
- 切換到彈出視窗後,記得要進行相對應的操作,否則程式會卡住。
而且還發現一個大坑。如果沒使用 switch_*()
,程式會一直停留在原來的頁面找元素,這樣新的頁面元素當然找不到!白白浪費我好多時間。
希望大家看我的分享,以後遇到類似的問題可以少走一些彎路。說真的,這些東西還是要自己親自實作過,踩過坑,才能真正理解和掌握。今天就分享到這裡,希望對大家有幫助!