我正在使用 Appium (v1.15.1) 在 Android 设备上使用 Chrome 浏览器从“ http://facebook.com ”查找电子邮件密码字段,我无法使用方法 findElementById(' ') 和 findElementByName('')。我尝试使用 XPath 找到它并且它有效。
这是我的代码:
public class Browse extends BaseMobile {
public static void main(String[] args) throws MalformedURLException {
AndroidDriver<AndroidElement> driver = capabilities();
driver.get("http://facebook.com");
driver.findElementById("m_login_email").sendKeys("prueba@mail.com"); // not working
driver.findElementByName("pass").sendKeys("123456789"); // not working
driver.findElementByXPath("//*[@name='login']").click();
}
}
能力:
public class BaseMobile {
public static AndroidDriver<AndroidElement> capabilities() throws MalformedURLException {
AndroidDriver<AndroidElement> androidDriver;
String serverUrl = "http://127.0.0.1:4723/wd/hub";
DesiredCapabilities cap = new DesiredCapabilities();
cap.setCapability(MobileCapabilityType.DEVICE_NAME, "Android device");
cap.setCapability(MobileCapabilityType.BROWSER_NAME, "Chrome");
androidDriver = new AndroidDriver<AndroidElement>(new URL(serverUrl), cap);
androidDriver.manage().timeouts().implicitlyWait(10,TimeUnit.SECONDS);
return androidDriver;
}
}
错误:
线程“主”org.openqa.selenium.InvalidArgumentException 中的异常:无效参数:无效定位器(会话信息:chrome=79.0.3945.136)
编辑(1):正如我所建议的那样,我打印了页面源,我得到它没有任何问题。也添加了 appium 日志。