python-3.x - 没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“.contact-button link-phone”} python 中的 selenium
问题描述
我正在尝试从网站获取信息,然后重用它......为此,我将 selenium 与 python 一起使用。
到目前为止我所做的是:
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
from webdriver_manager.chrome import ChromeDriverManager
driver = webdriver.Chrome(ChromeDriverManager().install())
driver.get('https://www.olx.ro/oferta/vand-apartament-3-camere-2-dormitor-1-living-IDdJOij.html')
time.sleep(10)
inputElement = driver.find_element_by_class_name("spoiler")
time.sleep(12)
inputElement.send_keys(Keys.ENTER)
如果您在此页面上单击“suna vanzatorul”,则会出现卖家的电话号码......我想获取此信息......
应单击的项目具有以下类别:
联系人按钮链接电话 {'path': 'phone', 'id': 'dcuxh', 'id_raw': '195069687'} atClickTracking contact-a
不幸的是,这不是静态的,它是动态的,单击后会出现此错误:
selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“method”:“css selector”,“selector”:“.contact-button link-phone”}(会话信息:chrome = 83.0 .4103.97)
请问我怎么能从那个网站上提取这些信息......
解决方案
一种方法是xpath
:
inputElement = driver.find_element_by_xpath("//div[@data-rel='phone']")
inputElement.click()
旁注 - 考虑使用WebDriverWait
而不是time.sleep
.
推荐阅读
- docusignapi - Docusign API 资源/速率限制是什么?他们只在生产中活跃吗?
- x86 - INTEL VT-D 根表和上下文表关系
- python - 如何为 QTextEdit 小部件定义 mousePressEvent 函数而不对其进行子类化?
- grafana - 如何显示从时间跨度开始到计数器时间点的增量
- python-2.7 - 如果变量调用函数是存储在变量中的结果
- python - Pandas to_sql 更改数据库表中的数据类型
- reactjs - React bootstrap 4模态窗口关闭按钮格式错误
- javascript - 插入登录功能 ASP.NET
- react-day-picker - 无法在 react-day-picker 中手动输入日期
- android - 改造 Json 一些数据返回 null