2016-06-01 1 views
0

J'ai l'obligation d'attendre une URL particulière dans l'automatisation de site Web en utilisant Selenium dans le navigateur Chrome. L'utilisateur effectuera un paiement en ligne sur notre site Web. Pour que notre utilisateur de site Web soit redirigé vers la passerelle de paiement. Lorsque l'utilisateur termine le paiement, la passerelle redirigera vers notre site Web. Je souhaite recevoir une notification de la part de la passerelle vers notre site.Attendre une URL particulière dans le sélénium

j'ai eu un exemple qui attend « Id particulière » dans la page web, voici le code vb.net

driver.Url = "http://gmail.com" 
    Dim wait As New WebDriverWait(driver, TimeSpan.FromSeconds(10)) 
       wait.Until(Of IWebElement)(Function(d) d.FindElement(By.Id("next"))) 

Cette Accède « gmail.com » et attend ID « suivant » sur ce page. Au lieu de cela, je souhaite continuer le code uniquement lorsque des URL particulières sont chargées.

Comment est-ce que je peux faire ceci?

S'il vous plaît aidez-moi.

Répondre

3

Je ne suis pas sûr de ce que la langue que vous utilisez, mais en Java vous pouvez faire quelque chose comme ceci:

new WebDriverWait(driver, 20).Until(ExpectedConditions.UrlToBe("my-url")); 

attendre jusqu'à ce que votre URL a été chargé.

Si vous ne pouvez pas utiliser la dernière version de sélénium pour une raison quelconque, vous pouvez mettre en œuvre la méthode vous:

public static Func<IWebDriver, bool> UrlToBe(string url) 
{ 
    return (driver) => { return driver.Url.ToLowerInvariant().Equals(url.ToLowerInvariant()); }; 
} 
+0

J'utilise vb.net, C# aussi OK pour moi. –

+0

J'ai édité ma réponse à la variante C#. Peut-être pas tout à fait correct car je n'ai pas installé VS pour le moment. – Mobrockers

+0

Je n'ai pas trouvé de différence dans votre réponse. Aussi, je reçois une erreur 'urlToBe' n'est pas un membre de 'OpenQA.Selenium.Support.UI.ExpectedConditions' –

0

Ils ont ajouté plus de soutien aux conditions attendues maintenant. Vous devez créer un webdriver wait et attendre que l'URL contienne une valeur

WebDriverWait wait = new WebDriverWait(yourDriver, TimeSpan.FromSeconds(5)); 
wait.Until(ExpectedConditions.UrlContains("/url-fragment"));