Skip to content

Commit 88e335a

Browse files
committed
fix navigate to other tab in construction page
1 parent 48a0442 commit 88e335a

File tree

2 files changed

+12
-15
lines changed

2 files changed

+12
-15
lines changed

TbsCore/Helpers/DriverHelper.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,11 @@ public static async Task WaitPageLoaded(Account acc, double delay = 1)
213213
public static async Task WaitPageChange(Account acc, string part, double delay = 1)
214214
{
215215
var wait = new WebDriverWait(acc.Wb.Driver, TimeSpan.FromMinutes(delay));
216-
wait.Until(driver => driver.Url.Contains(part));
216+
try
217+
{
218+
wait.Until(driver => driver.Url.Contains(part));
219+
}
220+
catch { }
217221
await WaitPageLoaded(acc, delay);
218222
}
219223
}

TbsCore/Helpers/NavigationHelper.cs

Lines changed: 7 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
1-
using OpenQA.Selenium;
1+
using HtmlAgilityPack;
2+
using OpenQA.Selenium;
23
using System;
34
using System.Linq;
45
using System.Threading.Tasks;
@@ -125,37 +126,29 @@ internal static async Task<bool> ToConstructionTab(Account acc, BuildingEnum bui
125126
classCategoryNode = "";
126127
break;
127128
}
128-
string classFirstNode;
129+
HtmlNode node;
129130
switch (acc.AccInfo.ServerVersion)
130131
{
131132
case ServerVersionEnum.TTwars:
132-
classFirstNode = "container";
133+
node = acc.Wb.Html.DocumentNode.Descendants("div").FirstOrDefault(x => x.HasClass("container") && x.HasClass(classCategoryNode));
133134
break;
134135

135136
case ServerVersionEnum.T4_5:
136-
classFirstNode = "tabItem";
137+
node = acc.Wb.Html.DocumentNode.Descendants("a").FirstOrDefault(x => x.HasClass("tabItem") && x.HasClass(classCategoryNode));
137138

138139
break;
139140

140141
default:
141-
classFirstNode = "";
142+
node = null;
142143
break;
143144
}
144-
var node = acc.Wb.Html.DocumentNode.Descendants("a").FirstOrDefault(x => x.HasClass(classFirstNode) && x.HasClass(classCategoryNode));
145145
if (node == null) return false;
146146

147147
var element = acc.Wb.Driver.FindElement(By.XPath(node.XPath));
148148
if (element == null) return false;
149149
element.Click();
150150
acc.Logger.Information($"Waitting tab change");
151-
try
152-
{
153-
await DriverHelper.WaitPageChange(acc, "category", 0.5);
154-
}
155-
catch
156-
{
157-
await DriverHelper.WaitPageLoaded(acc);
158-
}
151+
await DriverHelper.WaitPageChange(acc, "category");
159152
return true;
160153
}
161154

0 commit comments

Comments
 (0)