asp静态网站源码,两人合伙做网站但不准备开公司,福建省建设干部网站,网站可以换域名吗一、背景介绍
工作中有个需求是需要对某个页面进行监控#xff0c;但由于要监控页面数据是异步加载的#xff0c;因此很难从状态码和返回结果层面进行校验。于是乎想到了通过判断页面元素是否存在且显示内容是否正确来达到此目标。调研了一下发现selenium可以实现对这种动态…一、背景介绍
工作中有个需求是需要对某个页面进行监控但由于要监控页面数据是异步加载的因此很难从状态码和返回结果层面进行校验。于是乎想到了通过判断页面元素是否存在且显示内容是否正确来达到此目标。调研了一下发现selenium可以实现对这种动态数据加载页面的抓取
二、数据异步加载页面的监控方式
备注我采用的是方法一
方法一使用selenium对异步加载后的页面元素进行抓取方法二使用requests库直接对异步加载的接口进行请求
二、环境准备
注意浏览器版本与对应驱动版本必须一致
Chrome浏览器版本Chromium 77.0.3844.0chromedriver版本77.0.3844.0selenium版本4.9.1Python3
三、具体代码
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 ChromeDriverManagerurl http://mock.test.com
chrome_options webdriver.ChromeOptions() # 貌似从selenium 4.6以上就不用明确指定驱动版本啦
chrome_options.add_argument(--no-sandbox)
chrome_options.add_argument(--disable-dev-shm-usage)
chrome_options.add_argument(--disable-extensions)
chrome_options.add_argument(--headless)
chrome_options.add_experimental_option(detach, True)driver webdriver.Chrome(optionschrome_options)
driver.get(url) # 本行用于访问指定的地址# 等待指定元素出现最多等待10秒
element WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, //*[idxxx]/div[1]/h2))
)title driver.find_element(By.XPATH, //*[idxxx]/div[1]/h2).text
productname driver.find_element(By.XPATH, //*[idxxx]/div[2]/div[1]/ul/li/span[1]).textprint(title:, title)
print(product name:, productname)assert title 是标题啊
assert productname 是名字呀# 关闭浏览器
driver.quit()