当使用selenium 获取分页信息 并模拟点击时 出错:
因为涉及到登录账号密码,所以网页地址没办法发出来网页源码:(此处是分页部分源码)
<div id="spage" class="page">
<a class="pageupon" title="上一页" href="#" onclick="gotoPage('1');"></a>
<a class="c" href="#" onclick="gotoPage('1');">1</a>
<a class="c" href="#"><font color="red">2</font></a>
<a class="c" href="#" onclick="gotoPage('3');">3</a>
<a class="c" href="#" onclick="gotoPage('4');">4</a>
<a class="c" href="#" onclick="gotoPage('5');">5</a>
<a class="c" href="#" onclick="gotoPage('6');">6</a>
<a class="c" href="#"> ... </a>//当点到第六页时,这里就不显示三个点了,而是7 8 9 都呈现出来
<a class="c" href="#" onclick="gotoPage('9');">9</a>
<a class="pagedownon" title="下一页" href="#" onclick="gotoPage('3');"></a>
共9页
</div>
spage=drv.find_elements(By.XPATH,"//div[@id='spage']/a")#找到这些a标签
#程序主体部分
pages=spage[-2].text 这里保存的是所有页数,也就是上面代码中的9
for x in range(2,int(pages)+1):
print(spage.text)
spage.click()
time.sleep(3)
_zh=drv.find_element(By.XPATH,"//table[@id='resultTb']/tbody/tr/td").text
_mc=drv.find_element(By.XPATH,"//table[@id='resultTb']/tbody/tr/td").text
_xm=drv.find_element(By.XPATH,"//table[@id='resultTb']/tbody/tr/td").text
_jg=drv.find_element(By.XPATH,"//table[@id='resultTb']/tbody/tr/td").text
print(_zh,_mc,_xm,_jg)
#上面的循环只能执行前两次循环,到第三次(也就是第三页时,程序崩溃,错误信息如下)
错误信息:
Traceback (most recent call last):
File "d:/wpp/temp1.py", line 84, in <module>
print(spage.text)
File "D:\Python37\lib\site-packages\selenium\webdriver\remote\webelement.py", line 84, in text
return self._execute(Command.GET_ELEMENT_TEXT)['value']
File "D:\Python37\lib\site-packages\selenium\webdriver\remote\webelement.py", line 396, in _execute
return self._parent.execute(command, params)
File "D:\Python37\lib\site-packages\selenium\webdriver\remote\webdriver.py", line 428, in execute
self.error_handler.check_response(response)
File "D:\Python37\lib\site-packages\selenium\webdriver\remote\errorhandler.py", line 243, in check_response
raise exception_class(message, screen, stacktrace)
selenium.common.exceptions.StaleElementReferenceException: Message: stale element reference: element is not attached to the page document <a class="c" href="#"><font color="red">2</font></a>这里多了一个font标签, 少了一个onclick属性, 是不是得单独处理一下 月下孤井 发表于 2022-9-18 12:06
2这里多了一个font标签, 少了一个onclick属性, 是不是得单独处理一下
它的功能是点到某页,某页的文本就显示为红色
但是仍然接受鼠标点击 月下孤井 发表于 2022-9-18 12:06
2这里多了一个font标签, 少了一个onclick属性, 是不是得单独处理一下
我在尝试一下这个语句
for x in range(1,len(spage)+1):
drv.execute_script("gotopage("+str(x)+");")
这个在我自己的测试中 获取通过,不知道在那个网站上效果如何?? 完美,给自己点个赞 wp231957 发表于 2022-9-19 10:52
完美,给自己点个赞
{:5_106:}{:5_106:}
页:
[1]