python - 无法在 Python 中的类中获取详细信息
问题描述
我正在尝试使用 python 和 selenium 代码抓取以下网站。但是,当我尝试在“col-md-12 messageContentColumn”类中打印文本时,似乎什么都没有发生,也没有打印任何内容,我也没有收到错误消息。
driver.get("https://www.gpug.com/resources/forum")
driver.find_element_by_xpath('//*[@id="MainCopy_ctl02_MessageThreadSummary_hyperlinksubject_1"]').click()
posts = driver.find_elements_by_class_name("col-md-12 messageContentColumn")
print("test") ---gets printed
for post in posts:
print(post.text) ---Nothing gets printed
print("end") ---gets printed
解决方案
find_elements_by_class_name()
只接受类名而不是多类名。相反,您可以使用 css 选择器。
处理动态元素induced WebDriverWait
And visibility_of_all_elements_located
()
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
posts=WebDriverWait(driver,10).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,".col-md-12.messageContentColumn")))
for post in posts:
print(post.text)
推荐阅读
- excel - VBA Excel标记选择但复制下一列
- amazon-web-services - AWS - ECS:列出集群及其 Amazon EC2 实例
- android - 以矩形裁剪位图图像
- git - 子模块的 git 子模块
- sql - 为什么说关系数据库不擅长可扩展性,是什么让 NOSQL 数据库在这方面具有优势?
- android - Android应用程序中startForeground的错误通知
- mysql - 通过后缀选择具有相同列的所有表并将它们合并到新表中
- apache-nifi - 使用 NiFi 中的 convertRecord 处理器将 XML 转换为 AVRO
- java - 在 AWS Elasticbeanstalk 中部署时未加载网页资源
- laravel - 此集合实例上不存在属性 [名称]。雄辩的 Laravel