Chrome驱动程序-即使使用--no-options

时间:2018-08-06 18:41:21

标签: c# selenium selenium-webdriver selenium-chromedriver

我有一个运行很长时间的自动化任务。有时,网页完全加载需要一分钟以上的时间,因此我尝试以两种不同的方式设置默认超时。两者都不起作用,我仍然会在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驱动程序可能是一个问题。我要做的是拥有一个类DataAuditsUtility,该类具有自己的WebDriver实例,然后实例化它并在构造函数中进行设置。此类有很多在页面上执行操作的方法。

在测试类中,我将实例化该类并仅调用其方法。自动化运行很好,但是唯一的问题是我不知道如何增加URL超时。关于以上原因为何无效的任何想法?谢谢!

在此解决方案中,我在任何地方都没有配置文件,因此一文不值。除了这个测试类之外,我们实际上不在解决方案中使用硒,因此我想在这里包含所有配置,而不是其他位置的配置文件。

1 个答案:

答案 0 :(得分:0)

有报告issue,其中Webdriver最多超时60秒。

这是引述内容:

  

每个驱动程序类都有一个构造函数重载,可让您设置   每个命令的超时。这是FirefoxDriver的示例   将命令超时设置为5分钟:

     

IWebDriver驱动程序=新FirefoxDriver(新FirefoxBinary(),null,   TimeSpan.FromMinutes(5));

     

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

  

使用这些构造函数时,似乎WebDriverWait是   覆盖。

     

IWebDriver驱动程序=新FirefoxDriver(新FirefoxBinary(),null,   TimeSpan.FromHours(2));

     

WebDriverWait等待=新的WebDriverWait(驱动程序,   TimeSpan.FromMinutes(2)); ...

     

这使它等待2个小时而不是2分钟。

因此看来您可以在实例化上设置一个值。