2017-03-05 114 views

回答

0

從技術上講,你可以設置一個明確的等待靶向的「presence_of_element_located」或「visibility_of_element_located」狀態。但是請記住,通過點擊元素觸發的動作可以以多種方式綁定,其中一些可以在dom準備好之後發生(當完整的DOM加載完成時,尚未完全呈現)。

想想以下情形:

  1. 元素有「點擊」屬性,它火的javascript功能:在thiw情況下,動作可能發生完全加載之前(但只有當它不關心元素那麼還沒有呈現)
  2. 該元素是一個帶有「href」屬性的錨點,其中包含一個普通的url:在這種情況下,我認爲在完成加載之前單擊可能非常安全
  3. 元素具有在某些時候通過javascript綁定的動作:在這種情況下,您應該檢查js代碼以確保該元素具有當您想要單擊它時,該操作已被綁定。
+0

你能寫一段代碼嗎?你會如何寫出明確的等待?假設我想單擊'driver.find_element_by_id('a')',而不等待頁面完全加載。假設元素是具有「href」屬性的錨點。 –

+0

也許我有點匆忙:我忘了說selenium,對於每個「獲取」url,等待DOM準備好,然後將控制權返回給您的腳本。考慮到這一點,如果您正在處理的網站中的錨不在最初的DOM之後加載(即通過ajax調用或任何其他客戶端DOM操作),我認爲不可能實現您想要的。抱歉。 –

+0

那麼,實際的網站加載速度非常快,可以在6000毫秒左右的時間內使用,但驅動程序會一直等到https://springserve.com中的廣告加載真正緩慢的加載。 –

相關問題