Security Promp Paypal - PullRequest
       6

Security Promp Paypal

0 голосов
/ 08 апреля 2020

Я немного возился с Python и Pycharm, и я начал программировать сценарий автоматической учетной записи Paypal. Теперь у меня возникли некоторые проблемы, особенно с сайтом Security Prompt Paypal, который, очевидно, не позволяет скрипту включить go. (Если быть точным: он «ждет» около 20 секунд, а затем прерывает скрипт). Я использую новейшие драйверы Pycharm / Python с chromedriver (версия 79). Я слышал о некоторых параметрах кода implicity_wait, но просто не могу заставить его работать ...

Я хочу селен подождать, пока я не сделаю ReCaptcha, что появляется, когда я хочу подтвердить свой пароль.

Большая любовь ко всем, кто (по крайней мере, пытается) помочь. Спасибо

Вот код:

from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC


browser = webdriver.Chrome(executable_path=r"C:\Users\ASUS\Downloads\chromedriver.exe")

browser.get("https://www.paypal.com/welcome/signup?country.x=GB")
browser.implicitly_wait(30)

browser.find_element_by_id("acceptAllButton")
cookies = browser.find_element_by_id("acceptAllButton")
cookies.click()


browser.find_element_by_id("paypalAccountData_countryselector")
GB = browser.find_element_by_id("paypalAccountData_countryselector")
GB.click()

browser.find_element_by_id("paypalAccountData_firstName")
Name1 = browser.find_element_by_id("paypalAccountData_firstName")
Name1.click()
Name1.send_keys("James")

browser.find_element_by_id("paypalAccountData_lastName")
Name2 = browser.find_element_by_id("paypalAccountData_lastName")
Name2.click()
Name2.send_keys("Charles")

browser.find_element_by_id("paypalAccountData_email")
email = browser.find_element_by_id("paypalAccountData_email")
email.click()
email.send_keys("TheEmail@gmail.com")


browser.find_element_by_id("paypalAccountData_password")
Password = browser.find_element_by_id("paypalAccountData_password")
Password.click()
Password.send_keys("TheEmail12!")

browser.find_element_by_id("paypalAccountData_addressSuggest")
Adress = browser.find_element_by_id("paypalAccountData_addressSuggest")
Adress.click()
Adress.send_keys("SW1A 1BD")

browser.find_element_by_id("paypalAccountData_address2")
Adress2 = browser.find_element_by_id("paypalAccountData_address2")
Adress2.click()
Adress2.send_keys("Warwick House")

browser.find_element_by_id("paypalAccountData_address1")
ADL1 = browser.find_element_by_id("paypalAccountData_address1")
ADL1.click()
ADL1.send_keys("St. James's Palace")

browser.find_element_by_id("paypalAccountData_city")
City = browser.find_element_by_id("paypalAccountData_city")
City.click()
City.send_keys("London")

browser.find_element_by_id("paypalAccountData_phoneType")
Number = browser.find_element_by_id("paypalAccountData_phoneType")
Number.click()

browser.find_element_by_id("paypalAccountData_phone")
Number1 = browser.find_element_by_id("paypalAccountData_phone")
Number1.click()
Number1.send_keys("87536718921")

browser.find_element_by_id("paypalAccountData_dob")
DateOfBirth = browser.find_element_by_id("paypalAccountData_dob")
DateOfBirth.click()
DateOfBirth.send_keys("02041996")

browser.find_element_by_id("paypalAccountData_oneTouchCheckbox")
Checkout = browser.find_element_by_id("paypalAccountData_oneTouchCheckbox")
Checkout.click()

browser.find_element_by_id("paypalAccountData_tcpa")
Checkout2 = browser.find_element_by_id("paypalAccountData_tcpa")
Checkout2.click()

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Вместо того, чтобы использовать неявное ожидание в течение определенного времени, не могли бы вы попробовать явно ожидать, пока элемент станет доступным, или какое-то другое условие, которое изменяется после выполнения капчи?

Пример ожидания элемента в документации по селену здесь: https://selenium-python.readthedocs.io/waits.html

from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

driver = webdriver.Firefox()
driver.get("http://somedomain/url_that_delays_loading")
try:
    element = WebDriverWait(driver, 10).until(
        EC.presence_of_element_located((By.ID, "myDynamicElement"))
    )
finally:
    driver.quit()
0 голосов
/ 08 апреля 2020

Вы можете использовать модуль времени. Просто напишите:

import time
time.sleep(x)
...