次のリンクでは、idを指定することで要素を見つけることができると述べていますが、見つけることができません。
https://github.com/appium/appium/blob/master/docs/en/writing-running-appium/finding-elements.md
「名前」(つまり、テキスト、ラベル、または開発者が生成したID、または要素の「accessibilityIdentifier」で検索)
私は次のコードを試しました:
WebElement el = driver.findElement(By.name("txtLogin"));
txtLoginはログインボタンのIDです
次の例外が発生します。
org.openqa.Selenium.NoSuchElementException: An element could not be located on the page using the given search parameters. (WARNING: The server did not provide any stacktrace information)
appiumの要素を見つけるためのすべての方法を説明してください。
次のように要素IDを使用できます。
パッケージ名 : com.example.testap
要素ID:txtLogin
次のコードを書きます-
driver.findElement(By.id("com.example.testapp:id/txtLogin")).sendKeys("abc");
Xpathも使用してidで検索できます。 here要素にはclass = "Android.widget.Button"およびid = "digit5"があるので、
xpath("//Android.widget.Button[contains(@resource-id,'digit5')]")
Xpathは、 http://www.software-testing-tutorials-automationで確認できる詳細については、xpath("//Android.widget.Button[contains(@resource-id,'digit5') and @text='5']")
のような複数のconditionを適用する場合に最も役立ちます。 com/2015/10/ui-automator-viewer-get-Android-app.html
Appiumを使用して要素を見つける最も一般的な方法を含むjaveコードを以下に示します。
//Find element by id and enter Hello in Text box.
driver.findElementById("edit_name").sendKeys("Hello");
//Find element by class name and enter Hello in Text box.
driver.findElementByClassName("com.Android.EditText").sendKeys("Hello");
//Find element by xpath and enter Hello in Text box.
driver.findElementByXPath("//cass[@value='Enter Name']").sendKeys("Hello");
//Find element by link text and enter Hello in Text box.
driver.findElementByLinkText("Enter Name").sendKeys("Hello");
ネイティブビューとWebビューのAppiumで要素を見つける方法をもっと知りたい場合 VISIT HERE
Android APIレベルが18未満の場合、IDで要素を取得することはできません。IDが存在する場合、uiautomatorviewerでチェックインできます。その上にテキストを送信するための正しいフィールドを見つけます。
このように使用します-
public List<WebElement> getWebElementList(By by) {
return driver.findElements(by);
}
public void details() throws InterruptedException{
List<WebElement> weList = null;
weList = getWebElementList(By.tagName("Android.widget.EditView"));
for (WebElement we : weList) {
if(we.getText().toLowerCase().contains("login")){
we.sendkeys("Hello");
}
}
}
お役に立てれば。
Android iautomatorviewer。を使用して要素のIDを検索できます。SDKツールフォルダーD:\ Android\android-sdk\toolsに移動します。 uiautomatorviewer:開いて、アクティビティのスクリーンショットを取得し、任意の要素のID、クラス、パッケージを見つけます。
Appiumバージョン1.0以降では、findElementByTagNameは非推奨です。
代わりに、修飾クラス名でfindElementByClassNameを使用する必要があります。 Android以下のようにEditTextFieldとButtonのコード:
findElements(By.className( "Android.widget.EditText"));
findElements(By.className( "Android.widget.Button"));