Python 如何在selenium中计算2个或更多页面中的所有元素?
问题是我无法在Selenium中正确计算2个网页上的所有元素Python 如何在selenium中计算2个或更多页面中的所有元素?,python,selenium,selenium-webdriver,Python,Selenium,Selenium Webdriver,问题是我无法在Selenium中正确计算2个网页上的所有元素 pages = driver.find_elements(By.CLASS_NAME, "page") #getting list of pages for x in pages: #loop through this list x.click() #click on page number pric
pages = driver.find_elements(By.CLASS_NAME, "page") #getting list of pages
for x in pages: #loop through this list
x.click() #click on page number
prices += driver.find_elements(By.CLASS_NAME, "final-price") #addition 1pg and 2pg elements
print(len(prices))
结果是错误的:它将1pg与1pg相加,而不是1pg与2pg相加。
尝试插入等待-没有帮助:(
我想指出的是,页面没有重新加载,只需向上滚动并在单击第2页后显示新结果,它必须使用ajax。您可以使用请求和bs4库来废弃网站 例如: a) 我将计算一个站点中有多少链接: b) 我将提取每个链接的href值
import requests, bs4
my_request = requests.get('https://www.bellezaculichi.com')
# request one page
my_request.raise_for_status()
# check for error
my_html = bs4.BeautifulSoup(my_request.text)
# parse site
my_links = my_html.select('a')
#stores all links in list my_links
total_links = len(my_links)
# how many links do i found
print(total_links)
# show how many links
for i in range(total_links):
my_links[i]["href"]
使用bs4,您可以计算网页中的任何元素
你可以数一数有多少个div,p或a
使用bs4,您可以按ID对网页中的任何元素进行计数
使用bs4,您可以按类统计网页中的任何元素
使用bs4,您可以按属性对网页中的任何元素进行计数。您需要确保单击网页不会重新加载整个网页,如果这样,可能会出现问题谢谢!我想指出的是,页面并没有重新加载,只需向上滚动并显示新结果,然后在页面上发布链接。我的猜测是您一直在等待元素出现,等等。但是如果元素在刷新之前和之后都存在,那么等待很可能在刷新之前完成,这就是为什么您两次得到1的原因。