[英]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.