我正在使用WebDriver和Firefox运行几个测试.
我遇到以下命令的问题:
WebDriver.get(www.google.com);
使用此命令,WebDriver将阻塞,直到触发onload事件.虽然这通常需要几秒钟,但在从未完成加载的网站上可能需要数小时.
我想做的是在一定的超时后停止加载页面,以某种方式模拟Firefox的停止按钮.
我每次尝试加载页面时都首先尝试执行以下JS代码:
var loadTimeout=setTimeout(\"window.stop();\", 10000);
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不起作用,可能是因为:
由于脚本的加载顺序,stop()方法无法停止加载脚本1所包含的文档
更新1:我尝试使用SquidProxy来添加连接和请求超时,但问题仍然存在.
我今天发现的一个奇怪的事情是,我的机器上永远不会停止加载的一个网站(FF3.6 - 4.0和Mac Os 10.6.7)正常加载到其他浏览器和/或计算机上.
更新2:显然可以通过告诉Firefox不加载图像来解决问题.希望在此之后一切都会奏效......
我希望WebDriver有一个更好的Chrome驱动程序才能使用它.Firefox每天让我失望!
更新3:Selenium 2.9添加了一项新功能来处理驱动程序似乎挂起的情况.这可以使用FirefoxProfile如下:
FirefoxProfile firefoxProfile = new ProfilesIni().getProfile("web");
firefoxProfile.setPreference("webdriver.load.strategy", "fast");
Run Code Online (Sandbox Code Playgroud)
我会在尝试之后发布这是否有效.
更新4:最后,上述方法均无效.我最终"杀死"了很长时间才完成的线程.我正在尝试使用Ghostdriver,这是一个使用PhantomJS作为后端的远程WebDriver.PhantomJS是一个无头的WebKit脚本,所以我希望不会出现像Firefox这样的真正浏览器的问题.对于没有义务使用firefox(爬行目的)的人,我将更新结果
更新5:更新的时间.使用5个月的ghostdriver 1.1而不是FirefoxDriver,我可以说我对他的性能和稳定性非常满意.我遇到了一些我们没有适当行为但看起来像一般ghostdriver足够稳定的情况.因此,如果您需要像我这样的浏览器来进行爬行/网页抓取,我建议您使用ghostdriver而不是firefox和xvfb,这会给您带来几个令人头疼的问题......
我使用Solr作为我的前端webapp,为了在Ubuntu 10.04中安装它,我做了一个简单的apt-get solr-jetty,一切都很好.
现在的问题是我需要在Solr的最新版本中存在Solr的一些新功能,但是ubuntu包中的Solr版本仍然是1.4!
我的问题是如何将Solr版本升级到最新版本?有人可以给我一些提示我怎么能这样做?
编辑:或者可以如何使用Jetty彻底安装Solr ..
编辑:最后在我的VPS中使用已安装的Jetty安装Solr并不是那么困难.如果有人发现它有用,我按照下面的步骤:
就是这样.我不确定最后一步,如果它是最好的方法,但是因为Solr正在工作,应该是正确的方法(solr文档说了一些关于JNDI查找,但我没有设法找到它).
干杯
更新:在digitalocean中使用小型ubuntu机器我发现这篇非常有用的文章介绍了如何在ubuntu中安装最新的solr版本.免责声明:我没有工作或与digitalocean有任何关系..
我的问题类似于[1] 我有一个spring boot appplication,我在elasticsearch中保存了一些文档.每次在当前目录中的数据目录中创建索引.我想将此默认路径更改为给定的路径.我怎样才能做到这一点?这么简单的任务需要几个小时才能找到它.
我尝试了很多东西:
@Setting(setting="/data/elasticsearch")application.properties文件中:
path.dataspring.data.elasticsearch.path.data没有运气.
我在无头环境(Xvfb)中运行SE2和firefoxDriver测试.使用FirefoxDriver,我可以非常轻松地设置DISPLAY环境属性:
FirefoxBinary firefox = new FirefoxBinary();
firefox.setEnvironmentProperty("DISPLAY",":"+DISPLAY);
FirefoxProfile firefoxProfile = new ProfilesIni().getProfile(Config.webDriverFirefoxProfile);
this.webDriver = new FirefoxDriver(firefox,firefoxProfile);
Run Code Online (Sandbox Code Playgroud)
如何使用ChromeDriver完成上述操作?
更新:似乎这还不可能!我这里有一个类似的问题可以解释这种情况:ChromeDriver Headless
firefox ×1
ghostdriver ×1
jetty ×1
selenium ×1
solr ×1
spring-boot ×1
ubuntu ×1
web-crawler ×1
webdriver ×1
xvfb ×1