Python Selenium - 动态生成的数据未添加到DOM

时间:2016-06-06 21:07:38

标签: python selenium selenium-webdriver web-scraping

我正在使用python selenium

我正在运行这个简单的代码

driver = webdriver.PhantomJS()
#Also use driver = webdriver.Chrome()
driver.get("my_url")
driver.find_element_by_xpath("//*[@id='lb_LoadMore_button_text_2']").click()
print [x.text for x in driver.find_elements_by_xpath("//font[@class='ProductTitle']")]

我点击的按钮是“加载更多”按钮。按钮。在Chrome网络驱动程序上,我看到正在加载项目,但在提交点击后我不知道如何访问它们。

在尝试打印元素

之前,我也尝试过driver.refresh()

我对硒很新鲜,但未能找到解决方案。

1 个答案:

答案 0 :(得分:2)

点击后您可能只需要延迟,但我们不仅要添加time.sleep()来电,还要explicitly wait通过presence_of_all_elements_located()提供产品标题:

from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

driver.find_element_by_xpath("//*[@id='lb_LoadMore_button_text_2']").click()

# waiting
wait = WebDriverWait(driver, 10)
product_titles = wait.until(EC.presence_of_all_elements_located((By.XPATH, "//font[@class='ProductTitle']")))

print [x.text for x in product_titles]