等待 selenium 中的特定 URL
Wait for a particular URL in selenium
我需要在 Chrome 浏览器中使用 Selenium 在网站自动化中等待特定的 URL。
用户将在我们的网站上进行在线支付。我们的网站用户被重定向到支付网关。当用户完成付款后,网关将重定向到我们的网站。我想收到从网关到我们网站的重定向通知。
我得到了一个在网页中等待“特定ID”的例子,这里是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")))
这会导航到“gmail.com”并等待该页面上的 ID“next”。相反,我只想在特定 URL 加载时继续执行代码。
我该怎么做?
请帮助我。
我不确定你使用的是什么语言,但在 Java 中你可以这样做:
new WebDriverWait(driver, 20).Until(ExpectedConditions.UrlToBe("my-url"));
等待您的 url 加载。
如果因为某些原因不能使用最新的selenium版本,可以自己实现方法:
public static Func<IWebDriver, bool> UrlToBe(string url)
{
return (driver) => { return driver.Url.ToLowerInvariant().Equals(url.ToLowerInvariant()); };
}
他们现在增加了对预期条件的更多支持。您将不得不创建一个 webdriver wait 并期望 url 包含一个值
WebDriverWait wait = new WebDriverWait(yourDriver, TimeSpan.FromSeconds(5));
wait.Until(ExpectedConditions.UrlContains("/url-fragment"));
我需要在 Chrome 浏览器中使用 Selenium 在网站自动化中等待特定的 URL。 用户将在我们的网站上进行在线支付。我们的网站用户被重定向到支付网关。当用户完成付款后,网关将重定向到我们的网站。我想收到从网关到我们网站的重定向通知。
我得到了一个在网页中等待“特定ID”的例子,这里是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")))
这会导航到“gmail.com”并等待该页面上的 ID“next”。相反,我只想在特定 URL 加载时继续执行代码。
我该怎么做?
请帮助我。
我不确定你使用的是什么语言,但在 Java 中你可以这样做:
new WebDriverWait(driver, 20).Until(ExpectedConditions.UrlToBe("my-url"));
等待您的 url 加载。
如果因为某些原因不能使用最新的selenium版本,可以自己实现方法:
public static Func<IWebDriver, bool> UrlToBe(string url)
{
return (driver) => { return driver.Url.ToLowerInvariant().Equals(url.ToLowerInvariant()); };
}
他们现在增加了对预期条件的更多支持。您将不得不创建一个 webdriver wait 并期望 url 包含一个值
WebDriverWait wait = new WebDriverWait(yourDriver, TimeSpan.FromSeconds(5));
wait.Until(ExpectedConditions.UrlContains("/url-fragment"));