我有一段**,可以爬行到乙個無限高度的**(如facebook).
我需要頁面等待頁面首先載入然後繼續,但是我這樣做失敗.
以下是我到目前為止嘗試過的事情.
**如下:
while int(number_of_news) != int(len(news)) :
driver.execute_script("window.scrollto(document.body.scrollheight/2, document.body.scrollheight);")
news = driver.find_elements_by_class_name("news-text")
print(len(news))
輸出是這樣的
我將其解釋為當值是43、63 …時多次執行的迴圈.
我也嘗試使其遞迴,但結果仍然相同.遞迴**如下:
def call_news(_driver, _news, _number_of_news):
_driver.execute_script("window.scrollto(0, document.body.scrollheight);")
_news = driver.find_elements_by_class_name("news-text")
print(len(_news))
if int(len(_news)) != int(number_of_news) :
call_news(_driver, _news, _number_of_news)
else :
return _news
任何型別的提示,不勝感激.
解決方法:
您可以設定page_load_timeout以使驅動程式等待頁面載入
driver.set_page_load_timeout(10)
另一種選擇是等待元素數量改變
current_number_of_news = 0
news =
while int(number_of_news) != int(len(news)) :
driver.execute_script("window.scrollto(document.body.scrollheight/2, document.body.scrollheight);")
while (current_number_of_news == len(news)) :
news = driver.find_elements_by_class_name("news-text")
current_number_of_news = len(news)
print(len(news))
標籤:selenium,selenium-webdriver,asynchronous,synchronous,python
IT 執行在雲端,而雲執行在 Linux 上
it 正在逐漸遷移到雲端。那又是什麼驅動了雲呢?答案是 linux。當連微軟的 azure 都開始擁抱 linux 時,你就應該知道這一切都已經改變了。不管你接不接受,雲正在接管 it 已經成為現實。我們這幾年見證了雲在內部 it 的崛起。那又是什麼驅動了雲呢?答案是 linux 最近對 1000 ...
python無法執行指令碼 無法執行python指令碼
根據指令 我是python新手 我執行 performance.py localhost 999 我得到這個錯誤 phoenix performance evaluation script 1.0 creating performance table.error could not find or ...
Service 執行在主線程
service android developer對於service如下定義,或許,我們對service的誤解就 於這句話,perform long running operations in the background 不就是可以在後台執行上時間操作的意思麼。的確是這個意思,但是,我們是否理解錯...