CSS セレクターを使用します。したがって、以下の css は次のようになります。"input of class name inputField which has id that starts with 'CG'"
WebElement element = driver.findElement(By.cssSelector("input.inputField[id^='CG']"));
また
@FindBy(css="input.inputField[id^='CG']")
WebElement element
コメントに基づいて更新します。
CSS セレクターを適切に使用できるように、開発者に相談して要素の一意の属性を要求することをお勧めします。アプリケーションのテスト容易性は重要です。とはいえ、残念なことに、そのような戦いに常に勝てるわけではありません。そこに行ったことがあります!
onBlur
はイベントであり、属性ではありません。イベントで CSS を使用できるかどうかは 100% わかりません。だからここにあなたができる汚いハックがあります. 繰り返しますが、これはお勧めできません。値に基づいて入力ボックスを返すプライベート メソッドをページに配置します。DOM を見ると、この入力ボックスの属性は にvalue
設定されていForward SCR/MCR
ます。
WebElement element = getInputElement(Forward SCR/MCR");
private WebElement getInputElement(String value) {
List<WebElement> elements = driver.findElements(By.cssSelector("input.inputField[id^='CG']"));
for(WebElement element:elements) {
if(element.getAttribute("value").equals(value))
return element;
}
throw new RunTimeException("Couldn't find an element with value "+value);
}