Javascript 如何通过资源id获取元素?
我花了几个小时尝试使用appium javascript客户端按id搜索元素,但运气不好。我在stack overflow中发现了一些其他帖子,说明它是有效的,但对我来说不起作用。似乎我可以使用类似于:Javascript 如何通过资源id获取元素?,javascript,appium,appium-android,Javascript,Appium,Appium Android,我花了几个小时尝试使用appium javascript客户端按id搜索元素,但运气不好。我在stack overflow中发现了一些其他帖子,说明它是有效的,但对我来说不起作用。似乎我可以使用类似于: var buttonEl = await driver.findElement(By.id("resourceid")); 但我总是会犯这样的错误: InvalidSelectorError: Locator Strategy 'css selector' is not s
var buttonEl = await driver.findElement(By.id("resourceid"));
但我总是会犯这样的错误:
InvalidSelectorError: Locator Strategy 'css selector' is not supported for this session
下面是源代码:
"use strict";
var wd = require("selenium-webdriver"),
By = wd.By,
until = wd.until;
// Setting Desired Capabilities.
var desiredCaps = {
platformName: "Android",
deviceName: "a3ae1c63",
appPackage: "com.mypackage",
appActivity: ".Main",
browserName: '',
noReset: true,
newCommandTimeout: 1000000
};
async function test() {
//Initiating the Driver
let driver = await new wd.Builder().usingServer("http://localhost:4723/wd/hub").withCapabilities(desiredCaps).build();
var buttonEl = await driver.findElement(By.id("id/contact_selector"));
buttonEl.click();
}
test();
我现在很困惑。我知道我似乎无法在android会话中使用按id查找元素,但另一方面,我已经了解到有人成功地使用了它
任何帮助都将不胜感激。我认为您正在使用selenium参数作为定位器策略。请在此阅读应用程序选择器的文档 试试这个
var buttonEl = await driver.element("id", "resource-id");
我终于解决了我的问题。主要问题是我没有使用所需的web驱动程序。我切换到WebDrivero,现在一切正常
最好从检查appium github中的示例开始。他们为每个司机都举了一些例子。代码有点过时。?是的,我在询问之前也试过这个。也不行。同样,driver.element不存在。更明确一点->TypeError:driver.element不是一个函数您可以提供您用作解决方案的任何代码吗?将对未来的用户有所帮助