在操作過程中主要遇到兩種阻塞的問題,總結如下:
1、頁面中有iframe,定位元素時,需要用switch_to.frame()轉換到元素所在的frame上再去定位
2、遇到一種新情況,有些按鈕在html上沒有被賦予herf鏈接,而是由javascript控制跳轉到新的頁面,這種情況下點擊按鈕之后瀏覽器上打開一個新頁面,但是瀏覽器的句柄handle仍然會停留在原頁面(瀏覽器顯示的句柄在新頁面,所以不容易發現這個問題),而不是新彈出的頁面上,所以要定位新頁面的元素,必須先將句柄轉移到新彈出的頁面上,再去進行定位,用到如下語句:
#獲得瀏覽器上所有窗口
handles = driver.window_handles
#轉換到最新彈出的窗口
driver.switch_to.window(driver.window_handles[len(handles)-1])
跳轉需要時間的話,加上time.sleep(2),再試就能定位成功了
