5

Chrome ブラウザーで Selenium を使用して、Web サイトの自動化で特定の URL を待機する必要があります。ユーザーは、当社のウェブサイトでオンライン決済を行います。当社のウェブサイトから、ユーザーは支払いゲートウェイにリダイレクトされます。ユーザーが支払いを完了すると、ゲートウェイは当社の Web サイトにリダイレクトします。ゲートウェイから当サイトへのリダイレクト通知を受け取りたいです。

Web ページで「特定の 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 が読み込まれたときにのみコードを続行したいと考えています。

これどうやってするの?

私を助けてください。

4

2 に答える 2

14

使用している言語はわかりませんが、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()); };
}
于 2016-06-01T13:46:00.113 に答える