1

我通过 BrowserMobProxyServer(在 firefox 上)运行 Java 中的 Selenium 2,因为我需要在导航表单时捕获某些网络事件。我有一个 javascript 命令,我可以通过 JavascriptExecutor 使用 .executeScript("script.test") 调用它,但如果代理打开,这将不起作用。它在代理关闭的情况下工作正常 - 有没有办法在代理开启的情况下进行这项工作,或者无法通过代理进行 javascript 注入?

这是我使用代理创建的驱动程序。

             server = new BrowserMobProxyServer();
             server.start();
             int port = server.getPort();
             String proxy_address = "127.0.0.1:"+port+"";
             org.openqa.selenium.Proxy selenium_proxy = new org.openqa.selenium.Proxy();
             selenium_proxy.setHttpProxy(proxy_address)
                     .setFtpProxy(proxy_address)
                     .setSslProxy(proxy_address);
             Proxy proxy = ClientUtil.createSeleniumProxy(server);

             DesiredCapabilities seleniumCapabilities = new DesiredCapabilities();
             seleniumCapabilities.setCapability(CapabilityType.PROXY,selenium_proxy);
             seleniumCapabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS,true);
             seleniumCapabilities.setCapability(CapabilityType.SUPPORTS_JAVASCRIPT, true);
             driver = new FirefoxDriver(seleniumCapabilities);

我的 javascript 测试如下所示。

    JavascriptExecutor js = (JavascriptExecutor) driver;
    js.executeScript("script.test"); //Expect to have the form reach the result page
    Assert that an element on the result page is present
4

0 回答 0