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