Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 关于使用selenium c的会话超时#_C#_Selenium_Selenium Webdriver - Fatal编程技术网

C# 关于使用selenium c的会话超时#

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

我的应用程序有一个功能,加载搜索结果需要一分钟以上的时间,因为我的脚本失败,并给出60秒会话超时错误消息。我在谷歌上搜索了一些解决方案,并从stack overflow“”中获得了一个,但我不确定具体在哪里实现它。我的框架中有一个名为“app.config”的文件,app.config中的代码如下

    <?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"]));