Python 3.x 网站(https://www.nike.com/login)正在检测硒
我正在尝试使用selenium登录Nike.com,但它显示“我们现在无法连接到服务器。请稍后再试。请求后登录被阻止”。 我只有在尝试使用selenium登录时才会出现此错误。当我手动登录时,不会出现错误。 目前我正在使用这个代码Python 3.x 网站(https://www.nike.com/login)正在检测硒,python-3.x,selenium,selenium-webdriver,selenium-chromedriver,webdriverwait,Python 3.x,Selenium,Selenium Webdriver,Selenium Chromedriver,Webdriverwait,我正在尝试使用selenium登录Nike.com,但它显示“我们现在无法连接到服务器。请稍后再试。请求后登录被阻止”。 我只有在尝试使用selenium登录时才会出现此错误。当我手动登录时,不会出现错误。 目前我正在使用这个代码 chrome_options = webdriver.ChromeOptions() chrome_options.add_argument("--disable-blink-features") chrome_options.add_argume
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
问题不在于代码。代码运行良好。问题是Nike正在检测机器人,我想避免这种情况。您好,Nike网站不允许使用工具自动化他们的网站,这是您无法使用selenium自动化的原因。您好,Nike网站不允许使用工具自动化他们的网站,这是您无法使用selenium自动化的原因,但请尝试在您的机器上打开站点,并使用“webbrowser”执行您需要的操作。如果这不起作用,请告诉我。您不能使用selenium,但请尝试在您的机器上打开站点,并使用“webbrowser”执行您需要的操作。如果这不起作用,请告诉我。登录
nike.com
诱导WebDriverWait
(),等待元素可点击并遵循定位器策略
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()
浏览器快照。
登录nike.com
导入WebDriverWait
(),等待元素可点击()并遵循定位器策略
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()
浏览器快照。
您的代码在我的机器上运行良好(虽然我使用Java+Selenium,但我相信这并不重要)。现在来回答你的问题:
首先,您应该尝试在某些情况下使用下面的代码片段来删除cookie
@测试用例执行的BeforeTest部分
driver.manage().deleteAllCookies()
接下来,您应该更新您的chromedriver版本,以便重新检查
特别是在按钮单击之前放置一个等待按钮
您的代码在我的机器上运行良好(虽然我使用Java+Selenium,但我相信这并不重要)。现在来回答你的问题:
首先,您应该尝试在某些情况下使用下面的代码片段来删除cookie
@测试用例执行的BeforeTest部分
driver.manage().deleteAllCookies()
接下来,您应该更新您的chromedriver版本,以便重新检查
特别是在按钮单击之前放置一个等待按钮
但必须有一种方法避免检测到硒。我使用了一个机器人打开nike并使用硒登录。我不想下任何订单或用机器人做其他事情。我只想登录nike,就这样。我可以让用户用户名pasword检查登录吗?为什么要使用绝对xpath请使用相对xpath,但必须有一种方法避免检测到selenium。我使用了一个机器人打开nike并使用selenium登录。我不想下任何订单或使用机器人做其他事情。我只想登录nike,就这样。我可以使用用户名pasword检查登录吗?为什么使用绝对xpath请使用相对xpath我们可以打开webbrowser的任何链接,但如何使用它登录?也许可以尝试以非常原始的方式进行。自动化所有用户输入。在这里用Pynput试试:但我认为这不是通用的。如果显示的大小改变,那么代码就会中断。我们可以打开webbrowser的任何链接,但是如何使用它登录呢?也许可以尝试用一种非常原始的方式。自动化所有用户输入。在这里用Pynput试试:但我认为这不是通用的。如果显示大小更改,则代码将中断。您发送的代码工作正常,但再次出现同一问题,服务器错误“我们现在无法连接到服务器。请稍后重试。”它仅在我尝试使用Selenium登录时出现。您发送的代码工作正常,但再次出现同一问题,服务器错误“我们现在无法连接到服务器。请稍后再试。“它只在我尝试使用Selenium登录时出现。我知道代码没有问题,但网站检测到了机器人,这就是为什么它会说登录被阻止是的,你是正确的。但它也应该在我的案例中检测到。您是否已尝试删除Cookie?好的,那么您已使用上述代码成功登录Nike.com?对于python,命令为“driver.delete_all_cookies()”,我尝试过,但出现了相同的错误。是的@AbdulHaseeb我已登录(显然无法登录,因为凭据),但代码运行良好,或者我应该说selenium端没有阻塞。我知道代码没有问题,但网站检测到了机器人,这就是为什么它会说登录阻塞是的,你是正确的。但它也应该在我的案例中检测到。您是否已经尝试删除Cookie?好的,那么您使用上述代码成功登录Nike.com?因为python命令是“driver.delete_all_cookies()”,我尝试了,但出现了相同的错误。是的@AbdulHaseeb我登录了(显然由于凭据原因无法登录),但代码运行正常,或者我应该说selenium端没有阻塞。