鱼C论坛

 找回密码
 立即注册
查看: 1708|回复: 12

[已解决]Python 脚本不能网页上的按钮

[复制链接]
发表于 2021-1-5 09:39:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
简介:我在写一个自动抢课软件,大学生苦啊!
逻辑顺序是:1. 从我们学校官网 https://www.ucf.edu/ 点击 UCF SIGN IN + 。
                2. 然后再点击 myUCF。
                3. 然后会转到另外一个界面。

我有两种设想: 1. 直接用登录界面网址,打开登录界面。但是貌似我们学校官网挺安全,自动刷新地址。会报错如下面一样:
UCF Federated Identity
Authentication Error 1
An error occurred during authentication. Please try the following steps:
Completely close all web browser sessions.
Open a new web browser session.
Verify and type the URL of the site you wish to access.
Retry signing on using your username and password.
If you continue to receive this message, please try using a different browser, contact the web page’s support staff, or contact the UCF IT Support Center at (407) 823-5117 or itsupport@ucf.edu.
翻译:
UCF联合身份
验证错误1
身份验证期间发生错误。请尝试以下步骤:
完全关闭所有Web浏览器会话。
打开一个新的Web浏览器会话。
验证并键入您要访问的站点的URL。
重试使用您的用户名和密码登录。
如果您继续收到此消息,请尝试使用其他浏览器,与网页的支持人员联系,或通过(407)823-5117或itsupport@ucf.edu与UCF IT支持中心联系。

        2.通过点击 UCF SIGN IN + ,然后再点击 myUCF, 然后会转到我的登录页面界面。但是我的代码会报错:
Exception has occurred: ElementNotInteractableException
Message: element not interactable
  (Session info: chrome=89.0.4356.6)
        我查过说是运行慢,需要加一个wait function, 我也跟着StackOverflow改了,然并卵!!对了我是个半吊子Python使用者,我学的是C和Java,大佬嘴下留情。

我的code:
import account

import time

print(account.email)

from selenium import webdriver
from selenium.webdriver.common.keys import Keys


class CheckOutBot:
    def __init__(self):
        self.driver = webdriver.Chrome(executable_path=r'C:\Users\10294\Desktop\Ucf_Web\chromedriver.exe')
        self.driver.get("https://www.ucf.edu/")

    def login(self, email, password):
        #版本1
        #self.driver.get('https://idp-prod.cc.ucf.edu/idp/profile/SAML2/Redirect/SSO?execution=e1s1')
        
        #版本2
        self.driver.find_element_by_id('ucfhb-signon-logo').click()
        self.driver.find_element_by_id('ucfhb-myucf').click()


        time.sleep(10)
        email_input = self.driver.find_element_by_id("username")
        email_input.clear()
        email_input.send_keys(email)
        pass_input = self.driver.find_element_by_id("password")
        pass_input.clear()
        pass_input.send_keys(password)
        sign_on = self.driver.find_element_by_name('_eventId_proceed').click()

    def __del__(self):
        self.driver.close()


if __name__ == "__main__":
    checkout_bot = CheckOutBot()

    checkout_bot.login(account.email, account.password)

    #time.sleep(20)
最佳答案
2021-1-5 10:17:49
import time
from selenium import webdriver as wd



if __name__ == '__main__':
   browser = wd.Chrome()
   browser.get("https://www.ucf.edu/")
   time.sleep(5)
   browser.find_element_by_xpath("//button[@id='ucfhb-signon-logo']").click()
   time.sleep(3)
   browser.find_element_by_xpath("//a[@id='ucfhb-myucf']").click()
   

点击UCF SIGN IN +

点击UCF SIGN IN +

点击myucf

点击myucf
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-1-5 09:43:56 | 显示全部楼层
对了关于selenium

如果你装了python pip的话直接 cmd:
pip install -U selenium
自动下载66666

或者Pypl:
python setup.py install
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 10:16:45 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 10:16:58 | 显示全部楼层
Sebass 发表于 2021-1-5 09:43
对了关于selenium

如果你装了python pip的话直接 cmd:

我这里可以切到登录界面,再往下 我测试不了
我这里打开该网站实在是有些慢
无标题.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 10:17:49 | 显示全部楼层    本楼为最佳答案   
import time
from selenium import webdriver as wd



if __name__ == '__main__':
   browser = wd.Chrome()
   browser.get("https://www.ucf.edu/")
   time.sleep(5)
   browser.find_element_by_xpath("//button[@id='ucfhb-signon-logo']").click()
   time.sleep(3)
   browser.find_element_by_xpath("//a[@id='ucfhb-myucf']").click()
   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 10:55:45 | 显示全部楼层

如图,大哥我这咋不行啊? 我还专门去看了看chromeDrive的版本重新下载了一下chrome  v87....

一样的代码,我跑不出来是不是环境问题啊,我都重新搞了一遍,哭...
还是不行
3.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 10:58:05 | 显示全部楼层
Sebass 发表于 2021-1-5 10:55
如图,大哥我这咋不行啊? 我还专门去看了看chromeDrive的版本重新下载了一下chrome  v87....

一样的 ...

大哥,我抓到虫了!
MDZZ我每次电脑打开新窗口都是最小化。。。所以根本没有那个选项。
我的妈啊,气够呛
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 11:13:36 | 显示全部楼层
Sebass 发表于 2021-1-5 10:58
大哥,我抓到虫了!
MDZZ我每次电脑打开新窗口都是最小化。。。所以根本没有那个选项。
我的妈啊,气够 ...

browser.maximize_window()    开局最大化
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 11:23:35 | 显示全部楼层
wp231957 发表于 2021-1-5 11:13
browser.maximize_window()    开局最大化

我查到了,多谢大哥救我头发
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 11:44:01 From FishC Mobile | 显示全部楼层
Sebass 发表于 2021-1-5 11:23
我查到了,多谢大哥救我头发

我儿子今年大三,嘿嘿
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-1-5 13:13:18 | 显示全部楼层
wp231957 发表于 2021-1-5 11:44
我儿子今年大三,嘿嘿

告辞!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-5 17:15:22 | 显示全部楼层
学习一下
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-1-6 10:32:00 | 显示全部楼层

回帖奖励 +9 鱼币

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 19:56

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表