使用以下代码时出现错误:
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
中输入文本。
最佳答案
未找到该元素的原因是您在 className
中使用了 //
它,就像在 xpath 中使用它一样。
但是,在使用 className
或 id
等标签查找任何元素时,不需要 //
。
您可以使用 className
查找元素,例如:
driver.findElementByClassName("android.widget.EditText").click();
由于元素也存在 id,因此您也可以使用 id 查找元素,例如:
driver.findElementById("android:id/edit").sendKeys("hello");
关于java - 线程 "main"org.openqa.selenium.NoSuchElementException : An element could not be located on the page using the given search parameters 中出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55391391/