Java 使用代理时停止Selenium WebDriver中的无限获取

Java 使用代理时停止Selenium WebDriver中的无限获取,java,selenium,selenium-webdriver,webdriver,selenium-firefoxdriver,Java,Selenium,Selenium Webdriver,Webdriver,Selenium Firefoxdriver,更新: 当我使用代理时,get(url)从未完成的原因是网站的一些https部分(广告网络等)不喜欢代理。这就是为什么页面从未真正完成加载(事实上,它确实完成了,只是花了很长时间) 我在Firefox中使用Selenium Webdriver,当我试图访问某些无限期加载的网站时(除非存在某种用户交互),我只想阻止它们永远加载。我使用Webdriver的Java库,但代码使用Jython(因此没有“;”或“new xxx”) 我试过了 driver.manage().timeouts().page

更新:

当我使用代理时,get(url)从未完成的原因是网站的一些https部分(广告网络等)不喜欢代理。这就是为什么页面从未真正完成加载(事实上,它确实完成了,只是花了很长时间)

我在Firefox中使用Selenium Webdriver,当我试图访问某些无限期加载的网站时(除非存在某种用户交互),我只想阻止它们永远加载。我使用Webdriver的Java库,但代码使用Jython(因此没有“;”或“new xxx”)

我试过了

driver.manage().timeouts().pageLoadTimeout(15, TimeUnit.SECONDS)
driver.manage().timeouts().setScriptTimeout(15, TimeUnit.SECONDS)
driver.manage().timeouts().implicitlyWait(15, TimeUnit.SECONDS)
driver.get(...)
driver.close()
但每一次都不会停止

我使用DesiredCapabilities通过代理通过浏览器启动:

proxyServer = '127.0.0.1:8080'
proxy = Proxy()
proxy.setHttpProxy(proxyServer)
proxy.setSslProxy(proxyServer)
capabilities = DesiredCapabilities()
capabilities.setCapability(CapabilityType.PROXY, proxy)
driver = FirefoxDriver(capabilities)
当我没有设置代理时,网站会正常处理。只有在使用代理时,网站才会暂停,并且永远不会完成get()。这对每个网站都没有问题,只有一些网站有这个问题


你知道这是什么原因吗?代理设置似乎阻止浏览器或selenium发出消息,表示get()已完成。

您可以等待30秒,以便加载页面上的元素,例如HTML标记。如果元素在30秒内未加载,则捕获异常并继续

try
{
    new WebDriverWait(driver, 30).until(ExpectedConditions.presenceOfElementLocated(By.tagName("html")));
}
catch (TimeoutException e)
{
    // do something when this exception is caught
}

您可以等待30秒,以便加载页面上的元素,例如HTML标记。如果元素在30秒内未加载,则捕获异常并继续

try
{
    new WebDriverWait(driver, 30).until(ExpectedConditions.presenceOfElementLocated(By.tagName("html")));
}
catch (TimeoutException e)
{
    // do something when this exception is caught
}

永无止境地得到?像什么?当你真的在浏览器中打开这个页面时,它永远不会停止加载?我认为这是一个网页的bug。当我使用GET(URL)并跟进一个简单的打印(“Hello World”)时,打印永远不会达到。当网页出现问题时,我想让浏览器说“ok lets stop this”,并抛出一个异常,例如,设置代理可能会导致此问题。不过,这只是某些网站上的一个问题。我不知道我能不能举一个例子,永无止境?像什么?当你真的在浏览器中打开这个页面时,它永远不会停止加载?我认为这是一个网页的bug。当我使用GET(URL)并跟进一个简单的打印(“Hello World”)时,打印永远不会达到。当网页出现问题时,我想让浏览器说“ok lets stop this”,并抛出一个异常,例如,设置代理可能会导致此问题。不过,这只是某些网站上的一个问题。我不知道我是否能在这里举出一个例子。我会这样做,但get(url)永远不会结束。然而,我发现了我的问题所在。网站的一些部分,广告和点击主持人,不喜欢他们和网站之间没有直接的https连接。这就是为什么当我使用proxyi时,站点从未真正完成加载,但是get(url)从未完成。然而,我发现了我的问题所在。网站的一些部分,广告和点击主持人,不喜欢他们和网站之间没有直接的https连接。这就是为什么当我使用代理时,该站点从未真正完成加载