安全提示贝宝

问题描述 投票:0回答:2

我一直在弄混Python和Pycharm,然后开始编写Paypal自动帐户脚本。现在,我遇到了一些问题,尤其是在贝宝(Paypal)的安全提示站点上,该站点显然阻止脚本继续运行。 (确切地说:它“等待”大约20秒钟,然后中止脚本)。我正在将最新的Pycharm / Python驱动程序与chromedriver(版本79)一起使用我听说过有关hiddeny_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("[email protected]")


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()
python selenium-webdriver pycharm selenium-chromedriver
2个回答
0
投票

您可以使用时间模块。只需写:

import time
time.sleep(x)

0
投票

而不是使用隐式等待特定时间,您可以尝试显式等待某个元素变为可用,或在执行验证码后会发生变化的其他条件吗?

硒文档中提供了一个等待元素的示例: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()
© www.soinside.com 2019 - 2024. All rights reserved.