2015-09-17 5 views
0

Иам испытанной webscraping страницы: http://www.guiadosquadrinhos.com/todas-capas-disponiveisPython нажмите Js ссылку с селеном

мне нужно перейти в пагинации адресности информационных страниц любимой. мне нужно нажать на ссылку Javascript следующая страница:

JavaScript: __ doPostBack ('ctl00 $ MainContent $ lstProfileView $ dataPagerNumeric2 $ ctl02 $ ctl00')

from selenium import webdriver 
import time 

driver = webdriver.PhantomJS(executable_path='C:\Python27\Tools\phantomjs\phantomjs.exe') 
driver.get("http://www.guiadosquadrinhos.com/todas-capas-disponiveis") 
#print(driver.find_elements_by_class_name("numero_capinha")[0].text) 
#driver.find_elements_by_class_name("next_last")[0].click() 
#time.sleep(5) 
print(driver.find_elements_by_class_name("numero_capinha")[0].text) 
driver.find_elements_by_class_name("next_last")[0].click() 
print(driver.find_elements_by_class_name("numero_capinha")[0].text) 

Мой код возврата:

sobreontem - Independente

Traceback (последний звонок последний): Файл "teste_selenium.py", строка 10, в driver.find_elements_by_class_name ("next_last") [0] .cli ck() Файл «C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py», строка 74, нажатие self._execute (Command.CLICK_ELEMENT) Файл «C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py ", строка 453, в _execute return self._parent.execute (команда, params) Файл" C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py ", строка 201, в исполнении self.error_handler.check_response (response) Файл" C: \ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py ", Строка 181 , in check_response raise exception_class (message, screen, stacktrace) selenium.common.exceptions.ElementNotVisibleException: Сообщение: {"errorMessage": "Элемент в настоящее время не виден и может не быть «обработано», «запрос»: {«заголовки»: {«Принять»: «приложение/json», «Accept-Encoding»: «identity», «Connection»: «close», «Content-Length»: «81 », "Content-Type": "приложения/JSON; кодировка = UTF-8", "хост": "127.0.0.1:63160","User-Agent":"Python-urllib/2.7"},"httpVersion" : «1.1», «метод»: «POST», «post»: «{\" sessionId \ ": \" 5d3cfdc0-5d3b-11e5-b784-67706273a0bb \ ", \" id \ ": \": МЦД: 1442494581220 \ "}", "URL": "/ нажмите", "urlParsed": { "якорь": "", "запрос": "", "файл": "нажмите", "каталог": "/ " "путь": "/ нажмите", "относительный": "/ нажмите", "порт": "", "хозяин": "", "пароль": "", "пользователь": ""," USERINFO ":"», "власть": "", "протокол": "", "источник": "/ нажмите", "queryKey": {}, "ломти": [ "нажмите"]}, "urlOriginal": "/ session/5d3cfdc0-5d3b-11e5-b784-67706273a0bb/element /% 3Awdc% 3A1442494581220/click"}} Снимок экрана: доступен через экран

Что такое проблема?

+0

Пожалуйста, разместите html соответствующего элемента 'next_last'. Кажется, что в настоящее время это не видно на текстовой странице, и вам нужно будет выполнить какой-нибудь javascript, чтобы привлечь его к видимости. –

+0

>

ответ

3

Так, вы делаете следующее -

driver.find_elements_by_class_name("next_last")[0].click() 

Если вы смотрите в источнике, есть несколько элементов с этим именем класса и первым отключено, потому что для предыдущей кнопки и вы находятся на первой странице.

+0

Это правда! Спасибо, разрешил мою проблему, Решенный этот код: driver.find_elements_by_class_name ("next_last") [2] .click() –

+0

@VictorSued см. Http://stackoverflow.com/help/someone-answers. – alecxe

Смежные вопросы