iis服务器助手广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python selenium模拟点击问题怎么解决
  • 596
分享到

python selenium模拟点击问题怎么解决

2023-06-30 12:06:27 596人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

这篇文章主要介绍“python selenium模拟点击问题怎么解决”,在日常操作中,相信很多人在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模拟点击问题怎么解决”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: python selenium模拟点击问题怎么解决

本文链接: https://www.lsjlt.com/news/328791.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python selenium模拟点击问题怎么解决
    这篇文章主要介绍“python selenium模拟点击问题怎么解决”,在日常操作中,相信很多人在python selenium模拟点击问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家...
    99+
    2023-06-30
  • python selenium模拟点击问题解决方案
    目录1、安装谷歌浏览器2、安装浏览器驱动3、安装selenium4、简单测试5、打卡程序6、linux设置定时任务7、其他1、安装谷歌浏览器 #下载包 wget https://dl...
    99+
    2024-04-02
  • 怎么解决点击tomcat9.exe闪退的问题
    这篇文章将为大家详细讲解有关怎么解决点击tomcat9.exe闪退的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、 问题描述双击执行 startup.bat 可以正常启动,接着启动 tomcat9...
    99+
    2023-06-14
  • 怎么解决vue点击弹窗自动触发点击事件的问题
    这篇文章给大家分享的是有关怎么解决vue点击弹窗自动触发点击事件的问题的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。业务场景:使用vue +element ui 的el-dialog,点击弹窗之后,默认加载第一个...
    99+
    2023-06-15
  • python selenium运行时弹出窗口问题怎么解决
    本篇内容主要讲解“python selenium运行时弹出窗口问题怎么解决”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“python selenium运行时弹出窗口问题怎么解...
    99+
    2023-06-21
  • vue draggable组件拖拽点击无效问题怎么解决
    今天小编给大家分享一下vue draggable组件拖拽点击无效问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解...
    99+
    2023-06-30
  • jquery模拟点击方法怎么实现
    这篇文章主要介绍了jquery模拟点击方法怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇jquery模拟点击方法怎么实现文章都会有所收获,下面我们一起来看看吧。首先,我们来了解一下jquery是什么。J...
    99+
    2023-07-05
  • php的ddos攻击问题怎么解决
    要解决PHP的DDoS攻击问题,可以采取以下几种措施:1. 增加服务器的带宽和硬件资源:提高服务器的带宽和硬件资源可以增加服务器的处理能力,从而更好地应对DDoS攻击。2. 使用防火墙配置:使用防火墙来限制对服务器的访问,可以过滤掉恶意...
    99+
    2023-08-11
    php
  • vue中的input框点击后不聚焦问题怎么解决
    今天小编给大家分享一下vue中的input框点击后不聚焦问题怎么解决的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。input...
    99+
    2023-06-30
  • vue自定义组件@click点击失效问题怎么解决
    这篇文章主要讲解了“vue自定义组件@click点击失效问题怎么解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vue自定义组件@click点击失效问题怎么解决”吧!自定义组件@click...
    99+
    2023-06-30
  • 怎么用python chrome Selenium模拟手机浏览器
    这篇文章主要讲解了“怎么用python chrome Selenium模拟手机浏览器”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么用python chrome Selenium模拟手机浏...
    99+
    2023-06-02
  • Fastai过拟合问题怎么解决
    过拟合是模型在训练集上表现良好,但在测试集上表现差的现象。解决Fastai模型过拟合问题可以尝试以下方法: 数据增强:增加训练数...
    99+
    2024-04-02
  • 如何解决点击 tomcat9.exe闪退的问题
    有读者联系问,怎么tomcat启动都会出现问题,刚下载完还没开始操作。在这里说下怎么解决这个问题。 一、 问题描述 双击执行 startup.bat 可以正常启动,接着启动 tomc...
    99+
    2024-04-02
  • vue点击弹窗自动触发点击事件的解决办法(模拟场景)
    业务场景:使用vue +element ui 的el-dialog,点击弹窗之后,默认加载第一个按钮的数据进行初始化。  div  指令: // 自动触发...
    99+
    2024-04-02
  • Python logging 模块指南:解决常见知识点问题
    Python logging 模块 日志记录 异常处理 调试 1. 日志记录级别 日志记录级别指定了哪些事件应记录。从最低级别到最高级别,这些级别包括: DEBUG INFO WARNING ERROR CRITICAL 使用 l...
    99+
    2024-03-06
    Python logging 模块提供了强大的日志记录功能 但其复杂性有时会让人难以理解。本文将深入探讨此模块 解决常见知识点问题 并提供实用代码示例。
  • Vue路由重复点击报错问题及解决
    目录vue路由重复点击时会出现报错局部处理全局处理vue 重复点击菜单,路由重复报错解决报错原因解决方法总结vue路由重复点击时会出现报错 Uncaught (in promise)...
    99+
    2023-05-14
    Vue路由 路由重复点击报错 路由重复点击
  • Python logging 模块:解决你最棘手的知识点问题
    Python 的 logging 模块是一个强大的工具,可帮助你记录应用程序中的事件和消息。它提供了一个统一的接口来配置和管理日志记录,使你能够轻松处理日志记录任务。本文将深入探讨 logging 模块,解决常见的知识点问题并提供实用示...
    99+
    2024-03-06
    Python logging 模块、日志记录、调试、故障排除
  • 怎么解决layui禁用侧边导航栏点击事件的问题
    这篇文章将为大家详细讲解有关怎么解决layui禁用侧边导航栏点击事件的问题,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。直接上代码吧//JavaScript代码区域 la...
    99+
    2024-04-02
  • CNTK怎么解决过拟合和欠拟合问题
    在CNTK中,可以通过以下方式来解决过拟合和欠拟合问题: 过拟合问题: 添加正则化项:在损失函数中添加正则化项,如L1正则化或...
    99+
    2024-04-02
  • python中小数点后的位数问题怎么解决
    这篇文章主要介绍“python中小数点后的位数问题怎么解决”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“python中小数点后的位数问题怎么解决”文章能帮助大家解决问题。python中小数点后的位数...
    99+
    2023-07-06
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作