当前位置: 首页 > 知识库问答 >
问题:

Python Selenium Web Automation如何单击登录按钮

云新知
2023-03-14

我正在尝试为我的组织自动下载特定文件。在这样做的过程中,我遇到了使用Selenium的浏览器自动化。我已经到了可以注入用户凭据的地步,但现在我需要通过单击登录按钮登录到页面。

这是父URL,我在其中插入凭据https://www.accuplacer.org

然后我需要点击登录按钮。以下是该元件的检查输出:

<button type="submit" class="btn btn-lg btn-primary pull-left " ng-disabled="loginDisable &amp;&amp; isFullyLoaded">
                                    <!-- ngIf: loginSpin && !traceIE -->
                                    <!-- ngIf: loginSpin && traceIE -->
                                    Login
                                 </button>

这是我到目前为止的代码,我知道它是基本的,我正在清理它,并将一些东西定义到函数中。

import selenium
import os
import unittest
import requests
import time
from selenium import webdriver

#URL Variables
login_url = 'https://www.accuplacer.org/'
redirect_url = 'https://www.accuplacer.org/api/home.html#/'
reports_scheduler_url = 'https://www.accuplacer.org/api/home.html#/reportScheduler'
custom_reports_url = 'https://www.accuplacer.org/api/home.html#/customReports'

#WebDriver Path
browser = webdriver.Chrome("C:\Program Files (x86)\Google\Chrome\chromedriver.exe")

browser.get("https://www.accuplacer.org")

username = browser.find_element_by_id("login")
password = browser.find_element_by_id("password")
#submit = browser.find_element_by_id("Login")
username.send_keys("uname")
password.send_keys("test")

#browser.send_keys(Keys.ENTER)
#browser.send_keys(Keys.RETURN)

#submit.click()
browser.find_element_by_css_selector('btn btn-log btn-primary pull-left').click()

共有2个答案

百里意智
2023-03-14
browser.find_element_by_css_selector('.btn.btn-lg.btn-primary').click()
杜联
2023-03-14

您的CSS定位器错误。用显式等待尝试下面的css定位器。

element = WebDriverWait(browser, 20).until(
EC.element_to_be_clickable((By.CSS_SELECTOR, ".btn.btn-lg.btn-primary.pull-left")))
element.click();

对于这段代码,您需要在下面导入

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
 类似资料:
  • 我有一个带有登录按钮的网页。按钮上有文本“登录”。如何使用测试“登录”点击按钮。

  • 嗨,我正在尝试自动化https://www.nextgenerationautomation.com,但无法使用Selenium 4单击登录/注册按钮 步骤: null 如果我在这里遗漏了什么,请告诉我。

  • 编辑:底部的解决方案 这是一个跳棋游戏。单击一个按钮后,它等待单击第二个按钮与之交换。然而,有时你可能不想移动那个按钮,但一旦你点击了它,就没有回头路了,因为我无法禁用它。 在这里的其他帖子中,我看到人们使用 这只是使它在第一次单击后不可见。 这什么都干不了。 这也没什么用。编辑:所有这些方法都用true和false进行了尝试。 私有无效交换(){ 但你也需要 这样它就重新启用了它,或者其他什么,

  • 问题内容: 我在非Java和非Android领域拥有扎实的经验,正在学习Android。 我对不同领域有很多困惑,其中之一就是如何处理按钮单击。至少有4种方式(!!!),此处简要列出 为了保持一致性,我将列出它们: 在活动中具有该类的成员,并将其分配给将处理活动方法中的逻辑的实例。 在“ onCreate”活动方法中创建“ onClickListener”,然后使用setOnClickListen

  • 上述代码来自网站,但是尽管尝试了多次尝试,我仍无法单击此按钮。我该怎么办? 如何使用c# selenium点击按钮?以上对我不起作用。

  • 问题内容: 我正在一个springMVC项目中,其中用户身份验证基于Spring安全性。 这个想法是要拥有一个移动(android)应用程序,以便能够将某种数据发送到后端。 因此,在开始开发android之前,我决定使用cURL模拟登录表单的情况。 我们网站上的登录表单如下: 我使用以下命令: 但是我将获得登录页面,换句话说,我无法根据模拟情况通过用户身份验证。 只需注意:对于每一个请求,spri