代码之家  ›  专栏  ›  技术社区  ›  Tree55Topz

Chrome驱动程序-60秒后仍然超时,即使没有选项

  •  0
  • Tree55Topz  · 技术社区  · 7 年前

    我有一个长时间运行的自动任务。有时,网页完全加载需要一分钟,所以我尝试用两种不同的方式设置默认超时。两者都不起作用,我仍然会在60秒错误后得到默认超时。

    public IWebDriver driver;
    
    public DataAuditsUtility()
    {
           driver = new ChromeDriver();
           driver.Manage().Timeouts().PageLoad = TimeSpan.FromSeconds(180);
    
    }
    

    我也试过这样。。。

    public IWebDriver driver;
    public ChromeOptions options;
    
    public DataAuditsUtility()
    {
           options = new ChromeOptions();
           options.AddArgument("--no-sandbox");
           driver = new ChromeDriver(options);
    
    }
    

    据我所见,这两种方法都应该有效。。我开始认为这可能是我如何实例化chrome驱动程序的问题。我要做的是,我有一个DataAuditSubility类,它有自己的WebDriver实例,我实例化它并在构造函数中设置它。这个类有一系列在页面上执行操作的方法。

    在测试类中,我实例化了这个类,并只调用它的方法。自动化运行得很好,但唯一的问题是,我不知道如何增加URL超时。关于为什么上述方法不起作用,你有什么想法吗?谢谢

    在这个解决方案中,我没有任何配置文件也是毫无价值的。除了这个测试类之外,我们实际上在解决方案中不使用selenium,所以我希望在这里包含所有配置,而不是在其他地方包含配置文件。

    1 回复  |  直到 7 年前
        1
  •  2
  •   Community Mohan Dere    5 年前

    有一个 issue 报告webdriver在最长60秒时超时。

    以下是其中的一段话:

    每个驱动程序类都有一个构造函数重载,允许您设置 每个命令的超时时间。下面是FirefoxDriver的一个示例 要将命令超时设置为5分钟,请执行以下操作:

    IWebDriver driver=new FirefoxDriver(new FirefoxBinary(),null, 时间跨度。从5分钟开始;

    你可以为InternetExplorerDriver找到类似的构造函数重载, ChromeDriver和RemoteWebDriver。

    使用这些构造函数时,WebDriverWait似乎是 被推翻了。

    IWebDriver driver=new FirefoxDriver(new FirefoxBinary(),null, 时间跨度。从2小时开始;

    WebDriverWait wait=新的WebDriverWait(驱动程序, 时间跨度。从分钟(2)开始。。。

    这导致它等待了两个小时,而不是两分钟。

    因此,您似乎可以在实例化时设置一个值。