在我的 Selenium 项目中,我收到 ERR_HTTP2_PROTOCOL_ERROR

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

我正在开发一个硒项目。我正在尝试登录一个网站。我可以使用正常方法轻松登录,但是当我运行代码并发送登录请求时,我收到 ERR_HTTP2_PROTOCOL_ERROR。我不知道我该怎么办?

我通过创建 junit 测试项目添加了 selenium 库。我已经编码了在我的项目中正常完成的步骤。当我运行代码时,第一阶段运行顺利。但是,当我输入电子邮件地址并发送继续下一阶段的请求时,我收到此错误。

您可以在此视频中观看我遇到的问题: https://www.youtube.com/watch?v=tQDaiFv1DGI

注意:此问题仅在使用 selenium web 驱动程序时出现。正常使用没有这个问题。

针对这些机器人的安全重要吗?

我做了一些研究,但无法得出结论。 我重置了 Cashe 设置。 我将驱动程序更新到最新版本。 我禁用了http 2方法,但是这次我根本无法发送请求。

我正在分享我的 Junit 代码:

// Generated by Selenium IDE
package com.example.test;

import org.junit.Test;
import org.junit.Before;
import org.junit.After;
import static org.junit.Assert.*;
import static org.hamcrest.CoreMatchers.is;
import static org.hamcrest.core.IsNot.not;

import org.openqa.selenium.*;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.interactions.Actions;
import org.openqa.selenium.support.ui.ExpectedConditions;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.util.*;
import java.net.MalformedURLException;
import java.net.URL;


public class LoginTest {
  private WebDriver driver;
  private Map<String, Object> vars;
  JavascriptExecutor js;
  @Before
  public void setUp() {

    System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
    ChromeOptions options = new ChromeOptions();

    options.addArguments("--start-maximized");

//      options.addArguments("--disable-http2");
      options.addArguments("--no-cache");
//      options.addArguments("--no-store");
//      options.addArguments("--must-revalidate");
      //options.setPageLoadStrategy(PageLoadStrategy.EAGER);

//      options.addArguments("--aggressive-cache-discard") ;

    driver = new ChromeDriver(options);
    js = (JavascriptExecutor) driver;
    vars = new HashMap<String, Object>();
  }
  @After
  public void tearDown() {
    driver.quit();
  }

  @Test
  public void login() {

    driver.get("https://www.sephora.com.tr/giris-yap");

    try {
        Thread.sleep(1000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

   driver.findElement(By.id("footer_tc_privacy_button_2")).click();

    try {
      Thread.sleep(1000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

    driver.findElement(By.id("dwfrm_crmsephoracard_email")).click();

    driver.findElement(By.id("dwfrm_crmsephoracard_email")).sendKeys("[email protected]");


      WebElement emailInput = driver.findElement(By.id("dwfrm_crmsephoracard_email"));

//    try {
//      Thread.sleep(10000);
//    } catch (InterruptedException e) {
//      e.printStackTrace();
//    }


      emailInput.sendKeys(Keys.ENTER);

      try {
          Thread.sleep(1000000);
      } catch (InterruptedException e) {
          e.printStackTrace();
      }

    driver.findElement(By.className("field-wrapper has-input")).sendKeys("MyPassword");

    try {
      Thread.sleep(2000);
    } catch (InterruptedException e) {
      e.printStackTrace();
    }

    driver.findElement(By.id("field-wrapper has-input")).sendKeys(Keys.ENTER);


  }
}
java selenium-webdriver junit http2
1个回答
0
投票

我也遇到了同样的问题。我认为您已被 SEPHORA 或 AKAMAI 屏蔽。但我不确定它是基于您的 IP 还是您的自动化代码。如果你已经解决了这个问题。可以分享给我吗?

© www.soinside.com 2019 - 2024. All rights reserved.