C# Selenium增加元素单击的超时

C# Selenium增加元素单击的超时,c#,selenium-webdriver,C#,Selenium Webdriver,假设我有一个有按钮的页面。当我点击此按钮时,服务器处理完成,但可能需要60秒以上。 然后我创建一个脚本来单击此按钮,然后引发超时异常: 向远程WebDriver服务器发出的URL单击HTTP请求在60秒后超时 然后我尝试设置这些超时,但没有一个有效: IWebDriver driver = new FirefoxDriver(); driver.Navigate().GoToUrl("http://localhost:27541/"); driver.Manage().Timeouts().Se

假设我有一个有按钮的页面。当我点击此按钮时,服务器处理完成,但可能需要60秒以上。 然后我创建一个脚本来单击此按钮,然后引发超时异常:

向远程WebDriver服务器发出的URL单击HTTP请求在60秒后超时

然后我尝试设置这些超时,但没有一个有效:

IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("http://localhost:27541/");
driver.Manage().Timeouts().SetPageLoadTimeout(System.TimeSpan.FromSeconds(120));
driver.Manage().Timeouts().SetScriptTimeout(System.TimeSpan.FromSeconds(120)); 
driver.Manage().Timeouts().ImplicitlyWait(System.TimeSpan.FromSeconds(120));
driver.FindElement(By.Id("button1")).Click();
我该怎么做? 我需要增加这个按钮的超时时间

此解决方案有效,但我无法更改整个脚本的超时:

IWebDriver driver = new FirefoxDriver(new FirefoxBinary(), new FirefoxProfile(), TimeSpan.FromSeconds(120));
Selenium NuGet软件包版本:2.53.1
Firefox版本:46.0.1

单击此按钮后,用户界面上是否有任何指示。比如按钮被禁用或者图像旋转。如果是这样,您可以将此元素上的webdriverwait设置为启用,或将漫游图像设置为不可见。这将是一个显式的等待,不会影响您的脚本。@Grasshopper,问题是Click方法会停止执行。为什么您不能“更改整个脚本的超时时间?”除非您依赖60秒的超时时间,否则不会有任何副作用。@JimEvans,在我的工作示例中,我需要在驱动程序构造函数中设置超时。有没有其他方法只为元素设置超时?我还可以在单击之前设置更长的超时,并在单击之后设置正常值。我认为增加整个脚本的超时时间是可行的,但似乎不是正确的解决方案。单击此按钮后,用户界面上是否有任何指示。比如按钮被禁用或者图像旋转。如果是这样,您可以将此元素上的webdriverwait设置为启用,或将漫游图像设置为不可见。这将是一个显式的等待,不会影响您的脚本。@Grasshopper,问题是Click方法会停止执行。为什么您不能“更改整个脚本的超时时间?”除非您依赖60秒的超时时间,否则不会有任何副作用。@JimEvans,在我的工作示例中,我需要在驱动程序构造函数中设置超时。有没有其他方法只为元素设置超时?我还可以在单击之前设置更长的超时,并在单击之后设置正常值。我认为增加整个脚本的超时时间是可行的,但似乎不是正确的解决方案。