2017-12-06 1 views
-2

Ich versuche, für eine bestimmte URL zu warten, zu laden. Jedoch habe ich die vollständige URL nicht kennen, ein dynamischer Wert wird am Ende hinzugefügt werden. Lassen Sie uns sagen die URL www.test.com/accepted/?12345, aber ich weiß nur www.test.com/accepted/Selen UrlContains in C#

Ich bin so etwas wie dies zu tun versuchen:

WebDriverWait wait = new WebDriverWait(Generic.driver, TimeSpan.FromSeconds(10)); 
wait.Until(ExpectedConditions.UrlContains("www.test.com/accepted/")); 

Gibt es eine Möglichkeit für den Teil nur zu überprüfen, die ich kenne?

Antwort

0
wait.Until(ExpectedConditions.UrlContains("accepted")); 

Ist genau das, was Sie brauchen. Wenn es nicht funktioniert, den Code debuggen und überprüfen Sie die aktuelle URL und die erwartete URL. Wenn Sie einen Fehler erhalten, teilen Sie uns das bitte mit, damit wir Ihnen weiterhelfen können.

0

Hier ist der Code für ExpectedConditions.UrlContains(string) wie aus den Selenium source code genommen

public static Func<IWebDriver, bool> UrlContains(string fraction) 
{ 
    return (driver) => { 
     return driver.Url.ToLowerInvariant().Contains(fraction.ToLowerInvariant()); 
    }; 
} 

Wie Sie es implementiert eine Groß- und Kleinschreibung teilweise Übereinstimmung sehen. Diese

bedeutet, dass, wenn der Code in Ihrer Frage gezeigt funktioniert nicht, es ist, weil die URL absolut nicht die mitgelieferte Fraktion enthält, oder das Problem liegt woanders, dass wir nicht sehen können.