
報錯在進(jìn)行《實驗案例1百度搜索軟件測試》時發(fā)現(xiàn)代碼跑完assert 軟件測試 in driver.title 測試報錯斷言期望頁面標(biāo)題里包含“軟件測試”。實際結(jié)果標(biāo)題并沒有包含軟件測試即沒有成功跳轉(zhuǎn)調(diào)試反復(fù)確認(rèn)代碼編寫沒有錯誤在AI的協(xié)助下寫了debug測試文件from selenium import webdriver from selenium.webdriver.common.by import By import time d webdriver.Edge() d.get(https://www.baidu.com) d.find_element(By.ID, chat-textarea).send_keys(軟件測試) d.find_element(By.ID, chat-submit-button).click() time.sleep(3) print(title:, d.title) print(url:, d.current_url) print(窗口數(shù):, len(d.window_handles)) print(h3 個數(shù):, len(d.find_elements(By.XPATH, //h3))) print(源碼含關(guān)鍵詞:, 軟件測試 in d.page_source) input(看完頁面按回車關(guān)閉) # 讓瀏覽器停住人眼看清到底發(fā)生了什么 d.quit()運行結(jié)果如圖所示發(fā)現(xiàn)原因運行結(jié)果title百度安全驗證原來我的搜索已經(jīng)成功進(jìn)行了但百度把我攔在了安全驗證頁。百度檢測到我的瀏覽器是自動化工具Selenium于是彈出驗證碼要求手動驗證。這就是為什么標(biāo)題里沒有軟件測試——因為根本沒到搜索結(jié)果頁被攔在驗證碼頁面了。解決辦法在search()方法中添加強制等待用于手動過驗證代碼如下所示def search(self,keyword): # # river.find_element(By.ID,chat-textarea).send_keys(軟件測試) # self.driver.find_element(*self.SEARCH_INPUT).send_keys(keyword) self.input_text(self.SEARCH_INPUT,keyword) # # driver.find_element(By.ID,chat-submit-button).click() # self.driver.find_element(*self.SEARCH_BUTTON).click() self.click(self.SEARCH_BUTTON) # 暫停 40 秒手動過驗證碼 import time time.sleep(40) # #點擊后切換到新窗口 # self.switch_to_new_window() return self