Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 网站(https://www.nike.com/login)正在检测硒_Python 3.x_Selenium_Selenium Webdriver_Selenium Chromedriver_Webdriverwait - Fatal编程技术网

Python 3.x 网站(https://www.nike.com/login)正在检测硒

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

我正在尝试使用selenium登录Nike.com,但它显示“我们现在无法连接到服务器。请稍后再试。请求后登录被阻止”。 我只有在尝试使用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


问题不在于代码。代码运行良好。问题是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端没有阻塞。