#javascript #appium #appium-android
#javascript #appium #appium-Android
Вопрос:
Я потратил несколько часов, пытаясь выполнить поиск элемента по идентификатору с помощью appium javascript client, но безуспешно. Нашел несколько других сообщений здесь, в stack overflow, в которых говорится, что это работает, но у меня это не работает. Кажется, я мог бы использовать что-то вроде:
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, но, с другой стороны, я читал о людях, успешно использующих его.
Любая помощь была бы с благодарностью принята.
Комментарии:
1.appium.io/docs/en/commands/element/find-element ?
2. Да, я тоже пробовал это, прежде чем спрашивать. Тоже не работает. То же самое, driver.element не существует.
3. Чтобы быть немного более явным -> TypeError: driver.element не является функцией
Ответ №1:
Я думаю, что вы используете аргументы selenium для стратегии локатора. Пожалуйста, прочитайте документацию appium selector здесьhttp://appium.io/docs/en/commands/element/find-elements/index.html#selector-strategies.
попробуйте это
var buttonEl = await driver.element("id", "resource-id");
Ответ №2:
Наконец-то я смог решить свою проблему. Основная проблема заключалась в том, что я не использовал необходимый веб-драйвер. Я переключился на webdriverio, и теперь все работает.
Лучше всего начать с проверки примеров в appium github. У них есть несколько примеров для каждого драйвера. Хотя код немного устарел.
Комментарии:
1. Не могли бы вы предоставить любой код, который вы использовали в качестве решения? Было бы полезно для будущих пользователей