为什么运行代码之后,下一页点击不了,报错显示找不到该元素
来源: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()等待几秒
祝学习愉快~
相似问题