我测试了网页抓图:http://www.guiadosquadrinhos.com/todas-capas-disponiveis
我需要在分页geting info页面中导航。 我需要点击链接javascript下一页:
的javascript:__ doPostBack(' ctl00 $ $搜索Maincontent $ lstProfileView $ dataPagerNumeric2 $ ctl02 ctl00&#39)
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
回溯(最近一次呼叫最后一次):文件" teste_selenium.py",第10行,在 driver.find_elements_by_class_name(" next_last")[0] .click()文件" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py", 第74行,点击 self._execute(Command.CLICK_ELEMENT)File" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webelement.py", 第453行,在_execute中 return self._parent.execute(command,params)File" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ webdriver.py", 201行,执行中 self.error_handler.check_response(response)File" C:\ Python27 \ lib \ site-packages \ selenium \ webdriver \ remote \ errorhandler.py", 第181行,在check_response中 raise exception_class(message,screen,stacktrace)selenium.common.exceptions.ElementNotVisibleException:Message: {" errorMessage":"元素当前不可见,可能不是 操纵""请求" {"头" {"接受":"应用/ JSON""接受-encoding":"身份""连接":"靠近"" Content-Length的":" 81&# 34;,"内容类型":"应用/ JSON;字符集= UTF-8""主机":" 127.0.0.1:63160&# 34;,"用户代理":" Python的的urllib / 2.7"}" httpVersion":" 1.1"&# 34;方法":" POST""后":" {\"的sessionId \&#34 ;: \" 5d3cfdc0-5d3b-11e5-b784-67706273a0bb \",\" id \": \":WDC:1442494581220 \"}"" URL":" /点击"" urlParsed":{& #34;锚":"""查询":"""文件":"单击&# 34;,"目录":" /""路径":" /点击""相对于&#34 ;: " /点击""端口":"""主机":"""密码":"""使用者":""" USERINFO":"&#34 ;, "权威":"""协议":"""源":" /单击"" queryKey":{},"大块":["单击"]}" urlOriginal":&#34 ; /会话/ 5d3cfdc0-5d3b-11e5-b784-67706273a0bb /元件/%3Awdc%3A1442494581220 /点击"}} 屏幕截图:可通过屏幕获取
什么是问题?
答案 0 :(得分:3)
因为,您正在执行以下操作 -
driver.find_elements_by_class_name("next_last")[0].click()
如果您查看源代码,则会有多个具有此类名称的元素,并且第一个元素被禁用,因为这是针对上一个按钮而您位于第一页。