Python Selenium Web Automation Как вы нажимаете кнопку входа - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь автоматизировать загрузку определенных файлов c для моей организации. При этом я наткнулся на Browser Automation с 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>

Вот код, который у меня есть, я знаю, что он базовый c, и я работаю над его очисткой и определением чего-то в функциях.

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 ]

2 голосов
/ 21 января 2020

Ваш CSS локатор неверен. Попробуйте с локатором ниже css с явным ожиданием.

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

Для этого куска кода вам нужно ниже import

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
0 голосов
/ 21 января 2020

Вы можете использовать вышеперечисленное, но я не определил элемент так, как это делал Муззамил. Вместо этого я просто использовал следующее для # submit.click

browser.find_element_by_css_selector('.btn.btn-lg.btn-primary').click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...