Python,Selenium:’元素不再附加到DOM’
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python,Selenium:’元素不再附加到DOM’,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1439字,纯文字阅读大概需要3分钟。
内容图文
![Python,Selenium:’元素不再附加到DOM’](/upload/InfoBanner/zyjiaocheng/804/930e9f120b48402584f10973f4195c9d.jpg)
我正在抓一个网站,www.lipperleaders.com.我想提取新加坡的资金细节.我已成功实施下拉选择,并提取了提交选项后出现的第一页的内容.但是当我尝试转到下一页(通过使代码单击下一个按钮)时,我收到错误’元素不再附加到DOM’.
我的代码大约有100行,但我可以大致了解代码的执行流程:
... # creating driver object and all the imports
def main():
...
result = find_elements_by_tag_name('span')
...
driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
main()
main()
此代码适用于第一页,但在单击下一个按钮后再次调用main()时.在这个递归方法之前,我也试过把它放在一个循环中,然后也是同样的错误.
如果我写相同的代码,如:
# some code
result = find_elements_by_tag_name('span')
driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
# some code
driver.find_element_by_id("ctl00_ContentPlaceHolder1_ucDataPager_btnNext").click()
.
.
这段代码可以很好地处理下一页加载的任何错误,并执行之后编写的代码.但我不能写相同的driver.find_element_by_id().click()500页,甚至我将不得不重复与每个页面相关的其余代码.这就是为什么我尝试循环或递归,但它不适合我.
请让我知道我的方法有什么问题.
解决方法:
问题是该元素被某些javascript分离.所以你应该让驱动程序等待元素:这是通过设置implicitly_wait完成的,参见:
from selenium import webdriver
ff = webdriver.Firefox()
ff.implicitly_wait(10) # seconds
...
myDynamicElement = ff.find_element_by_id("myDynamicElement")
从
http://docs.seleniumhq.org/docs/04_webdriver_advanced.jsp#implicit-waits
内容总结
以上是互联网集市为您收集整理的Python,Selenium:’元素不再附加到DOM’全部内容,希望文章能够帮你解决Python,Selenium:’元素不再附加到DOM’所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。