我正在使用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("[email protected]"); // 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;
}
}
错误:
线程“ main”中的异常org.openqa.selenium.InvalidArgumentException:无效参数:无效的定位器(会话信息:chrome = 79.0.3945.136)
EDIT(1):如建议的那样,我打印了页面源代码,并且没有任何问题。也添加了appium日志。
driver.get(“ http://facebook.com”);之后;行尝试打印页面源,并查看它是否正在获取页面源。试试System.out.println(driver.getPagesource());