【发布时间】:2017-04-24 15:23:01
【问题描述】:
我正在尝试制作一个自动脚本机器人来查找特定项目并将该项目添加到用户购物车等。现在我被抓住了,因为每当代码自动填写用户信息时,电话号码和信用卡号码要么倒退要么混淆。
from selenium import webdriver
from selenium.webdriver.support.select import Select
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# Open chrome web browser and directs to supreme.com
browser = webdriver.Chrome()
browser.get('http://www.supremenewyork.com/shop/all')
# Find specific item
browser.find_element_by_xpath('//*
[@id="container"]/article[12]/div/a/img').click()
WebDriverWait(browser,10).until(
EC.visibility_of_any_elements_located((By.ID,'size')))
# Select size
Select = Select(browser.find_element_by_id('size'))
Select.select_by_visible_text("Large")
# Add to cart
browser.find_element_by_xpath('//*[@id="add-remove-buttons"]/input').click()
browser.find_element_by_xpath('//*[@id="cart"]/a[2]').click()
# Input user info
Name = browser.find_element_by_id('order_billing_name')
Name.send_keys("Justin Malik")
Email = browser.find_element_by_id('order_email')
Email.send_keys("xxxxxxxxxx@gmail.com")
Telephone = browser.find_element_by_id('order_tel')
Telephone.send_keys("3334449875")
Billing_address = browser.find_element_by_id('bo')
Billing_address.send_keys("13002 lala land CT")
Billing_zip = browser.find_element_by_id('order_billing_zip')
Billing_zip.send_keys("33579")
Billing_City = browser.find_element_by_id('order_billing_city')
Billing_City.send_keys()
Billing_State = browser.find_element_by_id('order_billing_state')
Billing_State.send_keys("TX")
# Credit info
Credit_number = browser.find_element_by_id('cnb')
Credit_number.send_keys("1234 5698 7588 4444")
Credit_month = browser.find_element_by_id('credit_card_month')
Credit_month.send_keys("07")
Credit_year = browser.find_element_by_id('credit_card_year')
Credit_year.send_keys("2021")
Credit_verif = browser.find_element_by_id('vval')
Credit_verif.send_keys("334")
# Accept Terms & Agreements
terms = browser.find_element_by_id('order_terms').click()
【问题讨论】:
-
电话和 CC# 字段是否具有自动格式化功能?我猜他们会这样做,并且过去我遇到过硒输入“太快”的问题。尝试制作一种逐个字符键入并在每个字符之间等待的方法。不是长期解决方案,但可以帮助您调试。
-
这不起作用
标签: python selenium selenium-webdriver bots autofill