我正在尝试使用selenium登录到Nike.com,但是它说:“我们现在无法连接到我们的服务器。请稍后再试。Post Request login被阻止”。只有在尝试使用selenium登录时才会收到此错误。当我手动登录时,它不会出现错误。目前我正在使用这个代码,
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument("--disable-blink-features")
chrome_options.add_argument("--disable-blink-features=AutomationControlled")
driver = webdriver.Chrome(options = chrome_options)
driver.get("https://www.nike.com/login")
email = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[6]/form/div[2]/input")
email.send_keys("Email Here")
password = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[6]/form/div[3]/input")
password.send_keys("Password Here")
button = driver.find_element_by_xpath("/html/body/div[2]/div[3]/div[6]/form/div[6]/input")
button.click()有谁可以帮我?
编辑# 01
问题不在于代码。密码工作正常。问题是耐克正在探测机器人,我想避免这种情况。
发布于 2020-10-01 12:13:26
嗨,耐克网站不允许通过使用工具自动化他们的网站,这也是你不能通过selenium实现自动化的原因。
发布于 2020-10-01 12:18:57
你不能用selenium来做这件事,但是试着在你的机器上打开站点,用"webbrowser“这里做你需要的事情。如果这不管用告诉我。
发布于 2020-10-01 12:40:11
要登录nike.com,请诱导WebDriverWait()并等待element_to_be_clickable()并遵循定位器策略。
from selenium import webdriver
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.Chrome()
driver.get("https://www.nike.com/login")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.NAME,"emailAddress"))).send_keys("Abdul Haseeb")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.NAME,"password"))).send_keys("Abdul Haseeb")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.XPATH,"//input[@value='SIGN IN']"))).click()浏览器快照.

https://stackoverflow.com/questions/64155146
复制相似问题