1.對於頁面中的一些Button,可能會因爲該元素被遮擋或沒有展示在可見區域(如在頁面底部),此時通過WebElement.Click()可能會觸發不了Click事件。我們可以通過執行JS去觸發click事件:((JavascriptExecutor)webDriver).executeScript("arguments[0].click();", webElement);
2.在對一些元素進行操作後,頁面發生跳轉或加載Ajax的時候,添加一個Wait方法等待page load完成再進行後續操作。方法是在某個時間段內判斷document.readyState是不是complete。
def isPageLoaded(driver): js = "return document.readyState" res = driver.execute_script(js) return res == "complete" def waitForPageLoad(driver): WebDriverWait(driver, 10).until(isPageLoaded)
注意:在使用WebDriverWait函數時,需要導入:from selenium.webdriver.support.ui import WebDriverWait