簡體   English   中英

關於使用 selenium c# 的會話超時

[英]Regarding Session Timeout using selenium c#

我的應用程序有一個功能,它需要時間來加載搜索結果,例如超過一分鍾,因此我的腳本失敗並給出 60 秒會話超時錯誤消息。 我在谷歌上搜索了幾個解決方案,並從堆棧溢出中得到了一個“ 如何在 web.config 中設置會話超時”,但我不確定在哪里實現它。 我的框架中有一個名為“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>

然后在您的代碼中,您將執行以下操作:

driver.Manage().Timeouts().ImplicitWait = TimeSpan.FromSeconds(Int32.Parse(ConfigurationManager.AppSettings["driver.Timeout"]));

這樣,如果您將應用程序部署到某個地方並希望使超時可配置,您只需在文本編輯器中編輯您的 app.config 文件並更改值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM