1
我試圖處理與AJAX和jQuery的網站。我要向下滾動,直到達到一定的部分,所以我也有等待和歐盟的一些方法,沒有sucess,像這樣:使用while語句與WebDriverWait和expected_conditions
scroll_bottom = """$('html, body').animate({scrollTop:$(document).height()},'fast');"""
from selenium.webdriver.common.by import By
# from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
# wait = WebDriverWait(driver,10)
while EC.element_to_be_clickable((By.ID,"STOP_HERE")):
driver.execute_script(scroll_bottom)
有什麼辦法對付等待和EC,爲了做一些事情,直到某些元素是可見的和/或可點擊的?
編輯:
我做了一些骯髒的把戲與JavaScript,但絕對不是我達到目標的Python的方式。
def scroll_b():
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
driver.execute_script(load_jquery)
wait = WebDriverWait(driver,10)
js = """return document.getElementById("STOP_HERE")"""
selector = driver.execute_script(js)
while not selector :
driver.execute_script(scroll_bottom)
time.sleep(1)
selector = driver.execute_script(js)
print("END OF SCROLL")
這是一個聰明的解決方案,比我的方式更好。可惜的是webdriver是多麼的可惜,以及它如何缺乏一種對語句友好的功能,以及「只是期望一種條件」。 謝謝! – peluzza