2015-08-11 1 views
0

Я попытался взять уникальный class_name, который появляется только после того, как страница полностью загружена, но для некоторых других reaseon это apears, прежде чем он apears на экранеКак ждать, пока веб-страница полностью загружена питон

try: 
    WebDriverWait(self.browser, 20).until(EC.element_to_be_clickable((By.CLASS_NAME, 'selo-fechado')) 
except: 
    pass 

, что else могу ли я сделать, чтобы дождаться загрузки страницы, за исключением time.sleep (4)?

+1

Использует ли страница AJAX-звонки или некоторые Javascript манипулирует DOM? Selenium обычно пытается подождать по умолчанию до загрузки страницы, так как 'driver.get()' является оператором блокировки. Однако AJAX и другие JS-скрипты все еще могут манипулировать DOM, что может привести к вашей проблеме. – DJanssens

+0

Возможно [это] (http://stackoverflow.com/questions/26566799/selenium-python-how-to-wait-until-the-page-is-loaded)? – Brian

+0

Я боюсь, что страница использует скрипт java, что я могу сделать, чтобы пройти через это? –

ответ

0

Я решил проблему путем обновления веб-сайта и начинает смотреть на предметы и то, что стало заметным в прошлом

0

Вот что я нашел, чтобы быть самым лучшим и самым надежным решением:

import sys 
from PyQt4.QtGui import * 
from PyQt4.QtCore import * 
from PyQt4.QtWebKit import * 
from lxml import html 

#Take this class for granted.Just use result of rendering. 
class Render(QWebPage): 
    def __init__(self, url): 
    self.app = QApplication(sys.argv) 
    QWebPage.__init__(self) 
    self.loadFinished.connect(self._loadFinished) 
    self.mainFrame().load(QUrl(url)) 
    self.app.exec_() 

    def _loadFinished(self, result): 
    self.frame = self.mainFrame() 
    self.app.quit() 

url = 'http://pycoders.com/archive/' 
r = Render(url) 
result = r.frame.toHtml() 
#This step is important.Converting QString to Ascii for lxml to process 
archive_links = html.fromstring(str(result.toAscii())) 
print archive_links 

Дополнительная информация здесь: https://impythonist.wordpress.com/2015/01/06/ultimate-guide-for-scraping-javascript-rendered-web-pages/