Помогите разобраться, почему не работает XPath.

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18
Яндекс-картинки,
https://yandex.ru/images/

После нажатия на кнопку "Поиск по картинке", открывается панель сверху, там есть область, если на которую нажать, откроется диалоговое окно выбора файла.

Вот снипет:
Код:
//поиск кнопки "Выберите файл"
Tab tab = instance.MainTab;
HtmlElement btn_Select_File = tab.MainDocument.FindElementByXPath("//body/div[3]/div/div[1]/div/form[1]", 0);
//нажатие на кнопку "Выберите файл"
btn_Select_File.RiseEvent("click", "Full");
XPath я использовал такой здесь: //body/div[3]/div/div[1]/div/form[1]
Еще я пробовал такие пути:
//div[contains(@class, 'cbir-panel__upload-box')]
//input[contains(@class, 'cbir-panel__upload-box')]

ZP говорит OK, но ничего не происходит, диалог не открывается. Понимаю, что что-то делаю не так, одновременно я не понимаю, что именно, в силу недостатка опыта.

Помогите понять, что не так.
Буду признателен весьма!
 

Aleksk

Client
Регистрация
19.06.2013
Сообщения
31
Благодарностей
23
Баллы
8
Если нужен клик на кнопку 'Выберите файл', можно так:
Код:
"//button[text()='Выберите файл']"
 
  • Спасибо
Реакции: Vladimirvolga

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18
Если нужен клик на кнопку 'Выберите файл', можно так:
Код:
"//button[text()='Выберите файл']"
Не так работает. Диалоговое окно выбора файла не открывается, эта панель просто исчезает и все.
 

Aleksk

Client
Регистрация
19.06.2013
Сообщения
31
Благодарностей
23
Баллы
8
Этот проверил в Selenium отрабатывает
Код:
"//form[@class='cbir-panel__dragzone']"
 
  • Спасибо
Реакции: Vladimirvolga

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18

Aleksk

Client
Регистрация
19.06.2013
Сообщения
31
Благодарностей
23
Баллы
8
Простите, что такое Selenium?
Инструмент для автоматизации действий веб-браузера. В большинстве случаев используется для тестирования Web-приложений
Просто под рукой не было зеньки, набросал на С# код для проверки запроса
 

Vladimirvolga

Пользователь
Регистрация
29.06.2017
Сообщения
134
Благодарностей
10
Баллы
18
Этот проверил в Selenium отрабатывает
Код:
"//form[@class='cbir-panel__dragzone']"
Вы знаете, этот так и не заработал. Я не знаю, почему у вас он работает, а у меня в ZP нет. Но проблему я решил все-таки:
Код:
"//input[contains(@name, 'upfile')]"
Сделал кубик через конструктор действий, посмотрел свойства действия: атрибут, тип поиска, значение. Составил XPath, в Хроме через xpath helper wizard протестировал - элемент ищется, но не подсвечивается. Попробовал вставить XPath в код и все заработало!

Код:
            //    Поиск кнопки "Выберите файл"

//поиск кнопки "Выберите файл"
Tab tab = instance.MainTab;
HtmlElement btn_Select_File = tab.MainDocument.FindElementByXPath("//input[contains(@name, 'upfile')]", 0);
//клик на кнопку
btn_Select_File.RiseEvent("click", "Full");

Большое всем спасибо!
:-)
 

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