web-dev-qa-db-ja.com

Appium:「指定された検索パラメーターを使用してページ上に要素を見つけることができませんでした」エラー

私はAppiumを初めて使用し、Android用のConversionCalculatorアプリを自動化しようとしています。 EditText要素を検索しようとすると、「org.openqa.Selenium.NoSuchElementException:指定された検索パラメーターを使用してページ上に要素を見つけることができませんでした」というエラーが発生します。 Appium v​​er1.0.0およびAndroid 4.3を使用

以下は私のコードです:

List<WebElement> textViews = driver.findElements(By.className("Android.widget.TextView"));
for (i=0; i<textViews.size(); i++) {
  if(textViews.get(i).getText().toLowerCase().contains("memory")) {
    textViews.get(i).click();
  }
} 
Thread.sleep(5000);

WebElement editText = driver.findElement(By.className("Android.widget.EditText"));
editText.sendKeys("123");

IDによるfindElementでさえ機能していません。ここで何が間違っているのか、または詳細を提供する必要がある場合はお知らせください。

10
Aby

driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);の代わりにThread.sleep(5000)を使用します。

Appiumの新しいバージョンを使用してみてください。私は大幅に改善されました。 AppiumおよびAppiumクライアントの最新バージョンはここからダウンロードできます: http://appium.io/downloads.html

ただし、新しいバージョンでは、検索結果が複数ある場合、findElementは例外をスローするため注意してください。


私はこれをコメントに書きますが、私は十分な評判がありません:/

4
stsatlantis

考えられる原因:

  • 現在の画面に複数のEditTextがあります。

次のことを試してください。

ソリューション1:

List<WebElement> editText = driver.findElements(By.className("Android.widget.EditText"));
editText.get(0).sendKeys("123");

0-EditTextのインデックス

ソリューション2:

Xpathのような他の検索戦略を使用します。

2
Abhishek Swain

WebDriverWaitオブジェクトを使用して、要素が表示されるか有効になるまで待機してみてください。

1
Rusty Wizard