browser - Appium:无法通过 ID 和名称在 Android chrome 浏览器中找到元素,得到“InvalidArgumentException”
问题描述
我正在使用 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 日志。
解决方案
之后 driver.get(" http://facebook.com "); 行尝试打印页面源并查看它是否正在获取页面源。试试 System.out.println(driver.getPagesource());
推荐阅读
- html - 使用图标跨度上的选项创建引导选择
- java - 升级到 Jenkins 2.277.1 后 LDAP 不工作
- javascript - 用一个新的模拟覆盖现有/共享的 Jest 模拟,仅用于一个测试
- python - 在过滤器中使用日期时 SQLAlchemy 中的不匹配
- tortoisesvn - TortoiseSVN head checkout 检索已删除的目录?
- python - 英特尔 Modin Jupyter 笔记本问题
- reactjs - React 中使用 Post Request 的简单计算器
- if-statement - SwiftUI 按钮 if 语句
- python - ModuleNotFoundError 'matplotlib_inline'
- swift - 用不弱的显式捕获打破 Swift 闭包保留圈