【问题标题】:python selenium - Unable to locate element in justdial sitepython selenium - 无法在justdial站点中找到元素
【发布时间】:2020-09-05 01:43:31
【问题描述】:
我已经试过了
- 隐式和显式等待
- 等待.直到
- 时间模块
在这里,我试图在 justdial 上找到“加载更多评论”链接。这是link。请检查并提供帮助。
from selenium import webdriver
from webdriver_manager.chrome import ChromeDriverManager
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.get("https://www.justdial.com/Delhi/S-K-Premium-Par-Hari-Nagar/011PXX11-XX11-131128122154-
B8G6_BZDET")
elem = browser.find_element_by_xpath('//*[@id="lmrehd"]')
elem.click()
请给我一些解释的解决方案。
【问题讨论】:
标签:
jquery
python-3.x
selenium
web-scraping
beautifulsoup
【解决方案1】:
查找包含 Load more reviews as it's text 的 span 标签。
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from webdriver_manager.chrome import ChromeDriverManager
browser = webdriver.Chrome(ChromeDriverManager().install())
browser.get("https://www.justdial.com/Delhi/S-K-Premium-Par-Hari-Nagar/011PXX11-XX11-131128122154-B8G6_BZDET")
element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.XPATH, "//span[text()='Load More Reviews..']")))
element.click()
browser.quit()
【解决方案2】:
这个网站是动态的,每次重新加载页面时id都会改变,
你不能用 id 来抓取它。
尝试其他内容,例如文本内容