私はAppiumでまったく新しいので、By.nameで要素を見つけたいと思っています.リストから検索しているので、検索テキストの一致結果を取得していますが、リストから要素をクリックしていなくても、正確な名前に一致する要素をクリックしていない可能性があります入力されたテキストをクリックしようとしています。要素を見つけるために複数の条件を適用する方法がわかりません。どうすればそれを行うことができますか? これに関連する添付画像:
2)画像:2
私はAppiumでまったく新しいので、By.nameで要素を見つけたいと思っています.リストから検索しているので、検索テキストの一致結果を取得していますが、リストから要素をクリックしていなくても、正確な名前に一致する要素をクリックしていない可能性があります入力されたテキストをクリックしようとしています。要素を見つけるために複数の条件を適用する方法がわかりません。どうすればそれを行うことができますか? これに関連する添付画像:
2)画像:2
商品リストのすべての要素が同じ ID を持っているようです。したがって、製品リスト内のすべての要素を見つけてから、for ループを使用して各要素を反復処理できます。
List<WebElement> productList = driver.findElements(By.id("producttext"));
for(WebElement product : productList) {
String productText = product.getText();
if(productText.equalsIgnoreCase("Biscuit")) {
product.click();
}
}
上記のコードは、現在の画面に存在する ID "producttext" を持つすべてのアイテムを保存します。そして for ループは各要素を反復します。「Biscuit」というテキストを含む要素が見つかったときに、その要素をクリックするようにチェックを追加しました。テストに応じて、さらにチェックを追加できます。
xpathを使用して、appiumでも要素を見つけるための条件をさらに適用できます。上記の場合、2番目の画像を使用し、条件を次のように適用します
driver.findElement(By.xpath("//android.widget.TextView[@text='Biscuit']")).click();
したがって、2つの条件でそれを達成します
1.className="android.widget.TextView" および text='ビスケット'
clickable=false に注意してください。それでも問題ありません。クリック可能な親をクリックします。