上週碰到了 Unable to locate element,即「沒法定位元素」,後靠兩行代碼解決:ui
wait = ui.WebDriverWait(driver,5)
wait.until(lambda driver: driver.find_element_by_id("username"))element
今天又碰到 cannot focus element,即「沒法聚焦元素」,開始覺得是 xpath 問題,換了種定位方法,仍是沒法聚焦。把這段代碼單獨存放到一個文件裏,執行該文件:get
......input
driver.get("http://xxx")it
driver.find_element_by_xpath("//input[@placeholder='搜索']").clear()
driver.find_element_by_xpath("//input[@placeholder='搜索']").send_keys("xxxxx")lambda
......搜索
執行成功,可見定位自己沒有問題,莫非跟 Unable to locate element 同樣,方法
因而又加入智能等待 WebDriverWait,即以下兩行代碼:xpath
wait = ui.WebDriverWait(driver,5)
wait.until(lambda driver: driver.find_element_by_id("username"))文件
問題解決(超時時間5秒可根據實際狀況而定)。