Навигация по Instagram

qwadra

Client
Регистрация
21.11.2017
Сообщения
259
Благодарностей
41
Баллы
28
Как правильно искать поля ввода при регистрации? Через дерево элементов и конструктор действий слетает после перезагрузки страницы. Как я понял, там динамические атрибуты.
Надо использовать этот Xpath мифический или и он не поможет?
 

dio-dev

Client
Регистрация
05.11.2018
Сообщения
149
Благодарностей
54
Баллы
28
Там у каждого поля есть атрибут name (name="fullName", name="emailOrPhone", name="username", name="password") хоть через конструктор, хоть по xpath.
для установки значения по xpath выполни следующий c# код
Код:
// НАСТРОЙКИ СНИППЕТА

// По умолчанию все значения для сниппета берутся из переменных
// проекта с префиксами "find_element_", "set_value_", "get_value_", "rise_"

// Если заполнить поля ниже - значения переменных будут игнорироваться

//Путь XPath
string xpath = "//input[@name='fullName']";
//Номер совпадения
int number = 0;

//Название атрибута для установки
string setAttrName = "value";
//Значение атрибута для установки
string setAttrValue = project.Variables["peremennaya_s_full_name"].value;


#region Капот

//Получаем значения из переменных
if (string.IsNullOrWhiteSpace(xpath) && project.Variables.Keys.Contains("find_element_xpath"))
{
    xpath = project.Variables["find_element_xpath"].Value;
}
if (project.Variables.Keys.Contains("find_element_number"))
{
    int.TryParse(project.Variables["find_element_number"].Value, out number);
}

if (string.IsNullOrWhiteSpace(setAttrName) && project.Variables.Keys.Contains("set_value_attr_name"))
{
    setAttrName = project.Variables["set_value_attr_name"].Value.ToLower();
}
if (string.IsNullOrWhiteSpace(setAttrValue) && project.Variables.Keys.Contains("set_value_attr_value"))
{
    setAttrValue = project.Variables["set_value_attr_value"].Value;
}

//Ищем элемент
var tab = instance.ActiveTab;
var el = tab.FindElementByXPath(xpath, number);
if (el.IsNull || el.IsVoid)
{
    throw new Exception("Элемент по пути '"+xpath+"' не найден, действие не выполнено!");
}
//Устанавливаем значение атрибута
if (setAttrName=="value")
{
    el.SetValue(setAttrValue, instance.EmulationLevel);
}
else
{
    el.SetAttribute(setAttrName, setAttrValue);
}

#endregion
 
  • Спасибо
Реакции: qwadra

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)