Python Selenium Web自动化如何单击登录按钮

2024-10-02 18:25:13 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为我的组织自动下载特定文件。 在这样做的过程中,我遇到了使用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()


Tags: httpsorgimportbrowsersendapiurlby
2条回答

您可以使用上面的内容,但是我没有像Muzzamil那样定义元素。 相反,我只是将以下内容用于#submit.click

browser.find_element_by_css_selector('.btn.btn-lg.btn-primary').click()

您的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

相关问题 更多 >