python selenium模拟点击问题怎么解决
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要介绍"python selenium模拟点击问题怎么解决",在日常操作中,相信很多人在python selenium模拟点击问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的
千家信息网最后更新 2026年11月01日python selenium模拟点击问题怎么解决
这篇文章主要介绍"python selenium模拟点击问题怎么解决",在日常操作中,相信很多人在python selenium模拟点击问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"python selenium模拟点击问题怎么解决"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
1、安装谷歌浏览器
#下载包wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb#安装包,用deb方式安装sudo dpkg -i --force-depends google-chrome-stable_current_amd64.deb#######################分割################################若出现Packet xxx is not installed,代表依赖出现问题执行以下命令apt-get install -f#重新执行一遍sudo dpkg -i --force-depends google-chrome-stable_current_amd64.deb#######################分割###############################为了让其能够无界面运行sudo apt-get install xvfb
2、安装浏览器驱动
#首先获取chromedriver的最新版本信息LATEST=$(wget -q -O - http://chromedriver.storage.googleapis.com/LATEST_RELEASE)#下载 wget http://chromedriver.storage.googleapis.com/$LATEST/chromedriver_linux64.zip #解压unzip chromedriver_linux64.zip #如果没有安装unzip就运行 apt install unzip#权限配置chmod +x chromedriver #移动到bin目录下sudo mv chromedriver /usr/bin/
3、安装selenium
#看自己系统是不是pip3,-i表示用什么源下载pip3 install selenium -i https://pypi.tuna.tsinghua.edu.cn/simple
4、简单测试
首先创建test.py文件,之后执行python3 test.py,查看效果
#coding=utf-8from selenium import webdriverfrom selenium.webdriver.chrome.options import Optionschrome_opt = Options() # 创建参数设置对象.chrome_opt.add_argument('--headless') # 无界面化.chrome_opt.add_argument('--disable-gpu') # 配合上面的无界面化.chrome_opt.add_argument('--window-size=1366,768') # 设置窗口大小, 窗口大小会有影响.chrome_opt.add_argument("--no-sandbox") #使用沙盒模式运行# 创建Chrome对象并传入设置信息.browser = webdriver.Chrome(chrome_options=chrome_opt)url = "https://www.baidu.com/"browser.get(url)print(browser.page_source)browser.quit()5、打卡程序
这里我先用浏览器插件的Selenium先点击好导出python文件进行修改。程序需要创建data.csv文件,并在其中写入账号密码
# Generated by Selenium IDEimport sysimport timefrom selenium import webdriverfrom selenium.webdriver.common.by import By# 读取数据函数userList = []def readData(): with open("data.csv","r") as f: for lines in f.readlines(): data = lines.strip().split(",") userList.append(data)# 全局函数def printLog(info): print('{0} {1}'.format(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),info))# 打卡类class Test: # 初始化浏览器 def __init__(self): # 添加 Chrome 相关配置 options = webdriver.ChromeOptions() # 指定设备名称即可 options.add_experimental_option('mobileEmulation', {'deviceName': 'iPhone X'}) options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') # options.add_argument('--headless') self.driver = webdriver.Chrome(chrome_options=options) # => 打开浏览器时加入配置 printLog("浏览器初始化完成") # 正式打卡 def signIn(self,username,password): printLog("正在打开网页") self.driver.get("http://stu.zstu.edu.cn/webroot/decision/url/mobile?origin=53fd9573-139e-4e3b-9357-4d791849ad58#/login") # 睡眠控制速度 # 刷新页面 self.driver.refresh() time.sleep(3) self.driver.set_window_size(800, 824) self.driver.find_element(By.XPATH, "//*[@id='app']/div/div[1]/div/div/div/div/div/div/div/div[2]/div[2]/div[1]/div/input").click() self.driver.find_element(By.XPATH, "//*[@id='app']/div/div[1]/div/div/div/div/div/div/div/div[2]/div[2]/div[1]/div/input").send_keys(username) self.driver.find_element(By.XPATH, "//input[@type=\'password\']").click() self.driver.find_element(By.XPATH, "//input[@type=\'password\']").send_keys(password) time.sleep(3) self.driver.find_element(By.CSS_SELECTOR,".r-1loqt21:nth-child(4)").click() time.sleep(4) printLog("登录成功") # 寻找打卡功能模块 self.driver.find_element(By.CSS_SELECTOR,".r-1loqt21:nth-child(2)").click() time.sleep(2) printLog("开始打卡") self.driver.find_element(By.CSS_SELECTOR, "#col_3_row_6 .css-901oao").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[34]/div/div/div/div").click() time.sleep(1) self.driver.find_element(By.CSS_SELECTOR, "#col_4_row_6 > div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[2]/div/div[2]/div/div/div/div/div").click() time.sleep(1) self.driver.find_element(By.CSS_SELECTOR, "#col_5_row_6 > div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[2]/div/div[6]/div/div/div").click() time.sleep(1) self.driver.find_element(By.CSS_SELECTOR, "#col_3_row_7 .css-1cwyjr8").click() self.driver.find_element(By.CSS_SELECTOR, "#col_3_row_7 .css-1cwyjr8").send_keys("浙江理工大学") printLog("打卡进行中") #选项,不知道为什么css定位不能用 self.driver.find_element(By.XPATH, "//div[10]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[12]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[13]/div/div/div/div/div/div/div[2]").click() self.driver.find_element(By.XPATH, "//div[17]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[18]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[19]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[20]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[21]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[23]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[25]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[26]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[28]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[30]/div/div/div/div/div[2]/div/div").click() time.sleep(1) #提交 self.driver.find_element(By.CSS_SELECTOR, "#col_1_row_39").click() time.sleep(10) printLog("本次打卡成功") def quit(self): self.driver.quit() printLog("浏览器退出")if __name__ == '__main__': test = Test() readData() for i in range(len(userList)): try: test.signIn(userList[i][0],userList[i][1]) except: printLog("打卡成功或者系统bug,正在进行下一个") continue test.quit() printLog("今日打卡任务完成") sys.exit()6、linux设置定时任务
#上传代码后,设置定时crontab -e #打开后添加以下记录,代表每天3点执行0 3 * * * /usr/bin/python3 /home/shawn/ezl/sign.py > /home/shawn/ezl/elog.log 2>&1#重启systemctl restart cron.service
7、其他
上面部分为研究生打开,下面为本科生
# Generated by Selenium IDEimport sysimport timefrom selenium import webdriverfrom selenium.webdriver.common.by import By# 读取数据函数userList = []def readData(): with open("data.csv","r") as f: for lines in f.readlines(): data = lines.strip().split(",") userList.append(data)# 全局函数def printLog(info): print('{0} {1}'.format(time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time())),info))# 打卡类class Test: # 初始化浏览器 def __init__(self): # 添加 Chrome 相关配置 options = webdriver.ChromeOptions() # 指定设备名称即可 options.add_experimental_option('mobileEmulation', {'deviceName': 'iPhone X'}) options.add_argument('--no-sandbox') options.add_argument('--disable-dev-shm-usage') options.add_argument('--headless') self.driver = webdriver.Chrome(chrome_options=options) # => 打开浏览器时加入配置 printLog("浏览器初始化完成") # 正式打卡 def signIn(self,username,password): printLog("正在打开网页") self.driver.get("http://stu.zstu.edu.cn/webroot/decision/url/mobile?origin=53fd9573-139e-4e3b-9357-4d791849ad58#/login") # 睡眠控制速度 # 刷新页面 self.driver.refresh() time.sleep(3) self.driver.set_window_size(800, 824) self.driver.find_element(By.XPATH, "//*[@id='app']/div/div[1]/div/div/div/div/div/div/div/div[2]/div[2]/div[1]/div/input").click() self.driver.find_element(By.XPATH, "//*[@id='app']/div/div[1]/div/div/div/div/div/div/div/div[2]/div[2]/div[1]/div/input").send_keys(username) self.driver.find_element(By.XPATH, "//input[@type=\'password\']").click() self.driver.find_element(By.XPATH, "//input[@type=\'password\']").send_keys(password) time.sleep(3) self.driver.find_element(By.CSS_SELECTOR,".r-1loqt21:nth-child(4)").click() time.sleep(4) printLog("登录成功") # 寻找打卡功能模块 # self.driver.find_element(By.CSS_SELECTOR,".r-1loqt21:nth-child(2)").click() self.driver.find_element(By.XPATH, "//*[@id='app']/div/div[1]/div/div/div/div[1]/div/div/div/div/div/div[1]/div/div/div/div[2]/div/div/div[3]/div/div/div[5]/div/div/div[3]").click() time.sleep(5) printLog("开始打卡") # self.driver.find_element(By.CSS_SELECTOR, "#col_3_row_6 .css-901oao").click() self.driver.find_element(By.XPATH, "//*[@id='col_1_row_11']/span").click() time.sleep(5) self.driver.find_element(By.XPATH, "//div[2]/div/div/div/div/div/div/div/div/div/div/div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[34]/div/div/div/div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[2]/div/div/div/div/div/div/div/div/div/div[2]/div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[2]/div/div[2]/div/div/div/div/div/div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[3]/div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//div[6]/div/div/div/div").click() time.sleep(1) self.driver.find_element(By.XPATH, "//input").click() time.sleep(1) self.driver.find_element(By.XPATH, "//input").send_keys("浙江理工大学") time.sleep(1) printLog("打卡进行中") #选项,不知道为什么css定位不能用 self.driver.find_element(By.XPATH, "//div[11]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[13]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[14]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[18]/div/div/div/div/div/div/div[2]").click() self.driver.find_element(By.XPATH, "//div[19]/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[19]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[20]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[21]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[22]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[24]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[26]/div/div/div/div/div/div/div").click() self.driver.find_element(By.XPATH, "//div[27]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[29]/div/div/div/div/div[2]/div/div").click() self.driver.find_element(By.XPATH, "//div[31]/div/div/div/div/div[2]/div/div").click() time.sleep(1) #提交 self.driver.find_element(By.XPATH, "//*[@id='col_0_row_40']/div/div/div/div").click() # self.driver.find_element(By.CSS_SELECTOR, "#col_0_row_40 .r-1loqt21 > .css-1dbjc4n").click() time.sleep(10) printLog("本次打卡成功") def quit(self): self.driver.quit() printLog("浏览器退出")if __name__ == '__main__': test = Test() readData() for i in range(len(userList)): try: test.signIn(userList[i][0],userList[i][1]) except: printLog("打卡成功或者系统bug,正在进行下一个") continue test.quit() printLog("今日打卡任务完成") sys.exit()到此,关于"python selenium模拟点击问题怎么解决"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
打卡
浏览器
浏览
问题
成功
配置
函数
正在
学习
任务
文件
界面
系统
运行
代表
信息
全局
功能
功能模块
名称
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
瑰夏咖啡
江苏根荣互联网科技
互联网科技金融
互联网金融 科技金融
互联网 科技创新
睿民互联网科技
互联网金融 科技创新
互联网金融监管科技
互联网科技素材视频竖屏
创业天下互联网科技有限公司
互联网科技教育视频
恒生互联网科技指数跳水
企晟互联网信息科技有限公司
佛山市拉法互联网科技有限公司
保险科技服务互联网营销体系
中科明德北京互联网科技
山东有哪些互联网科技公司
领航科技大厦互联网公司
上海乐五互联网科技有限公司
互联网科技新闻
咖啡豆
狮子座互联网科技
大白互联网科技
云创客互联网科技公司
佳云科技和互联网广告
湖南一路畅行互联网科技
济南小医互联网科技有限公司招聘
江苏互联网智能科技产品出厂价
利用互联网等科技手段
互联网科技快速发展优美句子