6

之前已经问过这个问题,但给出的答案似乎对我不起作用。问题是,当使用 Selenium 打开页面时,我会弹出许多“无响应的脚本”弹出窗口,引用不同的脚本。

当我使用没有 Selenium 的 Firefox 打开页面时,我没有收到任何错误。另外,奇怪的是,当我手动使用 selenium 打开页面时,它可以工作。所以我什至无法确定问题所在。

我可以共享代码,但没有必要这样做。基本上发生的事情是这样的:

  1. 程序从 MySQLdb 收集 url 元组
  2. 创建 URL 列表
  3. 根据某些因素,尝试使用 urllib2 或 selenium 打开 URL。
  4. 使用 selenium 打开时,每次都会创建新实例,因此:
driver = webdriver.Firefox()
driver.get(url)
do other things (either open links or get page source)
driver.close()

据我所知,错误发生在第二步(获取网址)。

我已将 about:config 中的脚本等待条件设置为非常高的数字和 0,但仍然出现错误。

这个问题有解决方案吗?

请注意,我不是出于测试目的而打开自己的页面。相反,我正在打开第三方网站,以获取某些数据。另请注意,有时音量会变得相当高(许多页面同时被不同的程序打开)——也许这就是问题所在??

我现在的问题主要是我什至无法在另一台计算机上复制问题,我完全迷失了。我希望那里的其他人也遇到过类似的问题并找到了解决方案。我感觉这与 Firefox 中的设置有关(不是 about:config)。

4

2 回答 2

12

在尝试了许多设置之后,我想我找到了一个可行的设置,唉,这里提到了它,我只是不太明白如何使用它(b/c 我从未处理过 selenium 中的 firefox 配置文件设置):Selenium 和 Firefox:如何关闭“无响应脚本”警告?

解决方法如下:

from selenium import webdriver
fp = webdriver.FirefoxProfile()
fp.set_preference("dom.max_chrome_script_run_time", 0)
fp.set_preference("dom.max_script_run_time", 0)
driver = webdriver.Firefox(firefox_profile=fp)
于 2013-10-03T05:57:40.707 回答
1
public class Send10000CharactersToChat {
private static WebDriver firefoxDriver;
@Before
public void initialize() {
    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("dom.max_chrome_script_run_time", 0);
    profile.setPreference("dom.max_script_run_time", 0);
    firefoxDriver = new FirefoxDriver(profile);
    }
}
于 2015-12-29T11:35:39.490 回答