有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

线程“main”组织中的java异常。openqa。硒。NoSuchElementException:使用给定的搜索参数在页面上找不到元素

我在使用以下代码时出错:

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

以下是全部代码:

package aaaaa;

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

import io.appium.java_client.安卓.AndroidDriver;
import io.appium.java_client.安卓.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("//安卓.widget.TextView[@text='Preference']").click();
        Thread.sleep(2000);
        driver.findElementByXPath("//安卓.widget.TextView[@text='3. Preference dependencies']").click();
        Thread.sleep(3000);
        driver.findElementByXPath("//安卓.widget.CheckBox").click();
        Thread.sleep(3000);
        driver.findElementByXPath("//安卓.widget.TextView[@text='WiFi settings']").click();
        Thread.sleep(3000);
        driver.findElementByClassName("//安卓.widget.EditText").click();
        Thread.sleep(30000);
        driver.findElementById("//安卓:id/edit").sendKeys("hi");
        driver.findElementByClassName("//安卓.widget.EditText").sendKeys("hello");
    }
}

我希望在EditText中输入文本


共 (1) 个答案

  1. # 1 楼答案

    找不到元素的原因是您在className中使用了//它,就像您在xpath中使用它一样
    但是,当使用诸如classNameid之类的标记查找任何元素时,不需要//

    您可以使用className查找元素,如:

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

    由于元素也有id,您也可以使用id查找元素,如:

     driver.findElementById("android:id/edit").sendKeys("hello");