Selenium滚动内部滚动条和报废结果

时间:2016-09-13 14:21:59

标签: python selenium

我正在试图为我的项目填写this website以填充可用的保险产品列表。

但是,该网站有一个内部滚动条,只显示页面上的前10个项目,并且当您向下滚动内部栏时,只会显示新元素。

我如何

  • 使用python Selenium向下滚动内部栏?似乎无法找到有关周围的信息。
  • 如何使用Selenium检索Company Name, Product Name, Paymode, product features (if active)并返回pandas Dataframe

1 个答案:

答案 0 :(得分:2)

有趣的是,根本不需要滚动容器。所有结果实际上都已加载,但部分结果只是不可见。您只需找到perl -e 'link "/Users/me/Documents", "/Users/me/Google Drive/Documents"' 类的所有sudo perl -U -e 'unlink "/Users/me/Google Drive/Documents"' 元素,即可获得所需的数据。

示例工作代码提取" prod名称":

li

打印:

result_content

请注意,我们必须使用from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium import webdriver driver = webdriver.Chrome("/usr/local/bin/chromedriver") driver.maximize_window() driver.get("http://comparefirst.sg/wap/productsListEvent.action?prodGroup=whole&pageAction=prodlisting") wait = WebDriverWait(driver, 10) wait.until(EC.visibility_of_element_located((By.ID, "result_container"))) results = driver.find_elements_by_css_selector("li.result_content") for result in results: prod_name = result.find_element_by_id('sProdName').get_attribute("innerText") print(prod_name) driver.close() 而不是AIA Gen3 (II) AIA Guaranteed Protect Plus AIA Guaranteed Protect Plus ... DIRECT- TM Basic Whole Life DIRECT- TM Basic Whole Life (+ Critical Illness) TM Legacy TM Legacy (+ Critical Illness) TM Legacy LifeFlex TM Legacy LifeFlex (+ Critical Illness) TM Retirement GIO TM Retirement PaycheckLife (Single Life) ,因为后者仅在大多数元素不可见时才会返回可见文本。