C# 关于使用selenium c的会话超时#
我的应用程序有一个功能,加载搜索结果需要一分钟以上的时间,因为我的脚本失败,并给出60秒会话超时错误消息。我在谷歌上搜索了一些解决方案,并从stack overflow“”中获得了一个,但我不确定具体在哪里实现它。我的框架中有一个名为“app.config”的文件,app.config中的代码如下C# 关于使用selenium c的会话超时#,c#,selenium,selenium-webdriver,C#,Selenium,Selenium Webdriver,我的应用程序有一个功能,加载搜索结果需要一分钟以上的时间,因为我的脚本失败,并给出60秒会话超时错误消息。我在谷歌上搜索了一些解决方案,并从stack overflow“”中获得了一个,但我不确定具体在哪里实现它。我的框架中有一个名为“app.config”的文件,app.config中的代码如下 <?xml version="1.0" encoding="utf-8"?> <configuration> <runtime> <ass
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-11.0.0.0" newVersion="11.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
下面提到的代码在堆栈溢出中给出,用于在web.config文件中进行必要的更改以设置会话超时
<configuration>
<system.web>
<sessionState timeout="20"></sessionState>
</system.web>
</configuration>
请帮助我在app.config文件中的何处进行必要的更改。您可以按以下方式设置隐式等待驱动程序:
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(20);
隐式等待是告诉WebDriver在试图查找一个或多个元素(如果它们不立即可用)时轮询DOM一段时间。默认设置为0。设置后,将为WebDriver对象实例的生命周期设置隐式等待
现在使用app.config的唯一原因是,如果您想配置此超时。在这种情况下,您需要在app.config文件中添加一个部分:
<appSettings>
<add key="driver.Timeout" value="20" />
</appSettings>
这样,如果您将应用程序部署到某个位置,并希望配置超时,则只需在文本编辑器中编辑app.config文件并更改该值 web.config中的
超时设置是针对web应用程序的。对于Selenium,您需要在代码中设置它。这是官方文档:WebDriverWait wait=newwebdriverwait(驱动程序,TimeSpan.FromSeconds(10))代码>更具体地说,您在哪里获得休息时间?如果添加代码/异常堆栈跟踪,可能会得到更好/更合适的解决方案。
driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(Int32.Parse(ConfigurationManager.AppSettings["driver.Timeout"]));