1

Java で Webdriver を使用していますが、動的 ID を持つ要素が Web ページに表示されるのを待つ必要があります。

たとえば、暗黙の待機について次のステートメントがあります。wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("dynamicID")))

dynamicIDは、私が待っている要素の ID の接頭辞であり、通常、その後に実際に予測できない数字が付いています。

ここにいくつかの良い答えがありましたFinding an element by partial id with Selenium in C#

コードを次のように変更しようとしました

wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(^="dynamicID")))

そしてそれは機能していません。

ページファクトリを使用しようとしました:

@FindBy(id ^= "dynamicID")
private WebElement something;

それも機能していません。

1.暗黙の待機ステートメントで ID 部分一致を使用するにはどうすればよいですか? 2. ページ ファクトリを使用していて、@FindBy が機能していると仮定した場合something、暗黙の待機でこの要素を使用するにはどうすればよいですか?

wait.until(ExpectedConditions.visibilityOfElementLocated(something)) 

動作しません。

よろしくお願いします。

4

2 に答える 2

1

By.xpath を使用でき、次のstarts-withように xpath 関数を使用できます。

wait.until(ExpectedConditions.visibilityOfElementLocated(
    By.xpath("//*[starts-with(@id, 'dynamicID')]")));

* は、任意の要素タイプを表すワイルド文字です。タグがわかれば差し替え可能です。たとえば、div の場合:

wait.until(ExpectedConditions.visibilityOfElementLocated(
    By.xpath("//div[starts-with(@id, 'dynamicID')]")));
于 2013-11-14T16:37:52.663 に答える
0

に部分一致を使用できますが、またはセレクターidのいずれかを使用する必要があります。xpathcss

wait.until(ExpectedConditions.visibilityOfElementLocated(By.CssSelector("tag[id^='dynamicID']")))

tag要素のタグはどこにありますか。

于 2013-11-14T09:05:24.753 に答える