Исключение в потоке "main" org.openqa.selenium.NoSuchElementException: элемент не может быть найден на странице с использованием заданных параметров поиска - PullRequest
1 голос
/ 28 марта 2019

Я получаю сообщение об ошибке при использовании следующего кода:

driver.findElementByClassName("//android.widget.EditText").sendKeys("hello");

Вот весь код:

package aaaaa;

import java.net.MalformedURLException;
import java.util.concurrent.TimeUnit;

import io.appium.java_client.android.AndroidDriver;
import io.appium.java_client.android.AndroidElement;

public class basics extends base {

    public static void main(String[] args) throws MalformedURLException, InterruptedException {

        AndroidDriver<AndroidElement> driver = Capabilities();

        driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
        driver.findElementByXPath("//android.widget.TextView[@text='Preference']").click();
        Thread.sleep(2000);
        driver.findElementByXPath("//android.widget.TextView[@text='3. Preference dependencies']").click();
        Thread.sleep(3000);
        driver.findElementByXPath("//android.widget.CheckBox").click();
        Thread.sleep(3000);
        driver.findElementByXPath("//android.widget.TextView[@text='WiFi settings']").click();
        Thread.sleep(3000);
        driver.findElementByClassName("//android.widget.EditText").click();
        Thread.sleep(30000);
        driver.findElementById("//android:id/edit").sendKeys("hi");
        driver.findElementByClassName("//android.widget.EditText").sendKeys("hello");
    }
}

Я ожидаю, что текст будет введен в EditText.

1 Ответ

1 голос
/ 28 марта 2019

Причина, по которой элемент не может быть найден, заключается в том, что вы использовали // его в className просто так, как вы используете его в xpath.
Однако при поиске любого элемента с использованием тегов, таких как className или id, // не требуются.

Вы можете найти элемент, используя className, например:

driver.findElementByClassName("android.widget.EditText").click();

И так как идентификатор также присутствует для элемента, вы можете найти элемент, также используя идентификатор, например:

 driver.findElementById("android:id/edit").sendKeys("hello");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...