为什么运行代码之后,下一页点击不了,报错显示找不到该元素
来源:4-6 项目作业
吴老师在线叛逃
2023-01-03 22:51:16
from selenium import webdriver
from selenium.webdriver.common.by import By
import pymongo
# 等待用包
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from lxml import etree
import time
class Total(object):
def __init__(self):
self.driver = webdriver.Chrome()
self.driver.maximize_window()
pymon = pymongo.MongoClient(host='127.0.0.1', port=27017, username='admin', password='123456')
ljk = pymon['python_money']
self.ji_he = ljk['data']
# 登录,点击搜索
def sign_in(self, url):
self.driver.get(url)
if WebDriverWait(self.driver, 5, 0.5).until(EC.presence_of_element_located((By.XPATH, "//input[@id='keywordInput']"))):
self.driver.find_element(by=By.XPATH, value="//input[@id='keywordInput']").send_keys('python工程师')
time.sleep(3)
self.driver.find_element(by=By.XPATH, value="//button[@id='search_btn']").click()
time.sleep(3)
# 解析并存储
def analysis(self, init):
html = etree.HTML(init)
data = html.xpath("//div[@class='e sensors_exposure']")
for i in data:
names = i.xpath(".//span[@class='jname at']/text()")
times = i.xpath(".//span[@class='time']/text()")
money = i.xpath(".//span[@class='sal']/text()")
place = i.xpath(".//span[@class='d at']/text()")
welfare = i.xpath(".//p[@class='tags']/text()")
datas = {
"names": names,
"times": times,
"money": money,
"place": place,
"welfare": welfare
}
self.ji_he.insert_one(datas)
def main(self):
self.sign_in("https://we.51job.com/pc/search?keyword=&searchType=2&sortType=0&metro=")
while True:
self.analysis(self.driver.page_source)
time.sleep(2)
self.driver.find_element(by=By.XPATH, value="//button[@class='btn-next']").click()
if self.driver.find_element(by=By.XPATH, value="//button[@class='btn-next']").get_attribute("disabled"):
break
self.driver.quit()
if __name__ == '__main__':
start_up = Total()
start_up.main()1回答
好帮手慕小猿
2023-01-04
同学,你好!在点击下一页后,网页正在跳转,跳转过程中无法获取到下一页的disabled 属性,
需要使用time.sleep()等待几秒

祝学习愉快~
相似问题