-1

このコードを試しましたが、まだエラーが発生しています:

        IWebDriver driver;
        driver = new InternetExplorerDriver("C:\\", options);

        driver.Navigate().GoToUrl("http://www.marathonbet.com/en/");


        IJavaScriptExecutor js = driver as IJavaScriptExecutor;
        string title = (string)js.ExecuteScript("window.find('Japan',0,0,0,0,0,1)");

だから私はこの機能に代わるものがあるかどうか疑問に思っていました

4

2 に答える 2

0

別のアプローチを捨てるために、XPath を試してください。

    String identifierXpath = String.format("//*[contains(text(),'%s')]", searchTerm);

    By identifier = By.xpath(identifierXpath);

    List<WebElement> elementsWithText = driver.findElements(identifier);

このアプローチにより、関心のあるテキスト ID を実際に含む要素にアクセスでき、もちろん「.size() > 0」を使用してテキストが実際に存在するかどうかを判断できます。

おそらく、findElements の前に暗黙の待機時間を 0 秒に変更し、後でリセットしますが、このコードは、私が理解しようとしているアイデアを提供するはずです。それがヘルパーメソッドにある場合は、明らかに意味があります。

これが「getPageSource()」を使用するよりも優れている、または効率的であると言っているわけではないことに注意してください。これは、問題を解決するための別のアプローチです。

1 つの大きな欠点は、大文字と小文字が区別されることです。ただし、xpath を変更して大文字と小文字を区別しないようにすることもできますが、これははるかに複雑になりますが、実行できます。

于 2013-09-04T09:10:05.620 に答える
0

存在するテキストを検索するだけの場合は、次のように実装できます。

boolean isTextPresent(String text){
    return driver.getPageSource().contains(text)
}
于 2013-09-04T08:51:46.650 に答える