Web アプリケーションのテストをいくつか書いています。Firefox XPath-Checker プラグイン内でこの XPath を使用すると、問題なく動作します。
//div[contains(@class, "my-class") and @data-custom-attr="id")]
しかし、これをセレンコードで次のように使用する場合:
(new WebDriverWait(driver, MAX_TIMEOUT_FOR_ELEMENT_LOADING_IN_SECONDS)).until(ExpectedConditions.presenceOfElementLocated(By.xpath("//div[contains(@class, \"my-class\") and @data-custom-attr=\"id\")]"));
タイムアウト例外がスローされます。
xpath クエリがブラウザーで直接機能するのに、セレン テストでは機能しないのはなぜですか? 私が考慮しなければならないことに関する文書はありますか?
補足として、正確なパス /html/body/div/... などを使用すると機能します。また、上記の例の css セレクター ペンダントも機能しません。