java - 无法使用 Chrome Web 驱动程序访问 servlet

标签 java selenium servlets gwt selenium-chromedriver

我试图在同一 Web 应用程序中使用 selenium chrome Web 驱动程序来访问我自己的 servlet,但代码没有达到我在 servlet 中设置的断点。

以下是我用来调用servlet的代码,

ChromeOptions options = new ChromeOptions();
options.setHeadless(true);

String PROXY = <proxy ip> + ":" + <proxy port>;     
Proxy proxy = new Proxy();
proxy.setHttpProxy(PROXY);
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(CapabilityType.PROXY, proxy);
options.merge(capabilities);

ChromeDriver webDriver = new ChromeDriver(options);

webdriver.get("http://<some ip>:<some port>/myApp/myServlet")

当我使用 url 从浏览器调用 servlet 时

http://<some ip>:<some port>/myApp/myServlet

它到达了断点。但是当我尝试从 webdriver 执行相同操作时,它不起作用。

有人可以帮我解决这个问题吗?

更新 - 下面是处理请求的 servlet。

public class MyServlet extends HttpServlet {

    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("In MyServlet -> doPost()");
    }

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        System.out.println("In MyServlet -> doGet()");
    }

}

最佳答案

终于找到问题了,是我使用的代理地址导致了问题,当我更改代理时,我能够成功访问 servlet。

为了更好地管理它,我维护了一个代理池,并添加了代码以在代理无效时从池中删除代理,还添加了代码以从池中提供下一个有效代理。

关于java - 无法使用 Chrome Web 驱动程序访问 servlet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51941982/

相关文章:

java - 如何在需要称为协方差的父类(super class)型的方法中返回子类型?

java - Gradle 构建失败 : could not find org. jetbrains.kotlin 即使我没有使用 Kotlin

java - 根据响应禁用过滤器

java - MVC1和MVC2有什么区别

python - 使用 Selenium Python 从页面源获取元标记

java - 表单向 Servlet 发送空查询字符串

java - 根据共享首选项设置 ImageView 的可见性

java - 如何使 dex2jar 在将 dex 转换为 jar 时跳过某些类?

c# - Internet Explorer 不会在测试期间启动新窗口

python - 使用 Selenium 和 Firefox 版本 40,如何下载文件?