我必须从描述底部的页面中抓取数据,我的目标是获得左下角蓝色方块中描述的电话号码,但电话号码不是很明显,只有单击后才会完全显示。
我用Selenium测试,但没有结果,它返回NoSuchElementException
错误
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
import time
s = Service('home/Downloads/chromedriver')
driver = webdriver.Chrome(service=s)
driver.get("https://bina.az/items/3141057")
time.sleep(5)
button = driver.find_element(By.CLASS_NAME,"show-phones js-show-phones active")
1条答案
按热度按时间ohtdti5x1#
这里有几个问题:
1.您试图单击的元素不在可视屏幕中。因此,您首先需要滚动屏幕才能访问它。
show-phones
js-show-phones
active
是3个类名称。如果要使用所有这3个值,则应使用CSS_SELECTOR
而不是CLASS_NAME
,但由于show-phones
足以创建唯一定位器,因此可以将其与CLASS_NAME
一起单独使用。1.应使用显式等待,而不是硬编码休眠
time.sleep(5)
WebDriverWait
expected_conditions
。下面的代码是有效的:
结果是