我有一个运行很长时间的自动化任务。有时,网页完全加载需要一分钟以上的时间,因此我尝试以两种不同的方式设置默认超时。两者都不起作用,我仍然会在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超时。关于以上原因为何无效的任何想法?谢谢!
在此解决方案中,我在任何地方都没有配置文件,因此一文不值。除了这个测试类之外,我们实际上不在解决方案中使用硒,因此我想在这里包含所有配置,而不是其他位置的配置文件。
答案 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分钟。
因此看来您可以在实例化上设置一个值。