#c# #selenium #dynamics-365
#c# #селен #dynamics-365
Вопрос:
Пытаясь автоматизировать Dynamics365, нажмите кнопку Farm Tax и выберите PPR в списке (большое красное поле слева). Выделенный текст — это идентификатор кнопки. Не удалось найти, где находятся списки (PPR или любые другие) в Инструментах разработчика в Chrome. Только «are-haspopup» меняется с «false» на «true» при нажатии кнопки (см. Маленькое красное поле посередине). Как найти элементы, которые представляют всплывающее окно (большое красное поле)?
Комментарии:
1. Пожалуйста, добавьте код, который вы пробовали.
2. Код находит выделенный элемент. Тогда я понятия не имею, как найти элементы для появившихся вариантов (PPR, FBR и т. Д. В красном поле).
3. var frameId = findByElements . findById(«AppLandingPage»); Драйвер. switchTo() . Frame(frameId); findByElements . findById(«AppTileContainerSec_1_LI_1»).Click(); findByElements. findById(«areaSwitcherId»).Click();
4. Также «метка области» (сразу после выделенного текста) изменилась после выбора из всплывающего окна. Мне нужно найти способ программно щелкнуть любой из всплывающих вариантов (PPR, FBR и т. Д.)
5. Также класс меняется (над серым выделением поперек) меняется для каждого выбора.
Ответ №1:
Это может вызвать некоторые проблемы. Вот что нужно попробовать. Мы попытаемся найти элемент выпадающего списка по текстовому значению.
var frameId = findByElements.FindById("AppLandingPage");
Driver.SwitchTo().Frame(frameId);
findByElements.FindById("AppTileContainerSec_1_LI_1").Click();
findByElements.FindById("areaSwitcherId").Click();
Driver.FindElement(By.XPath("//*[contains(text(),'PPR')]")).Click();
Комментарии:
1. Спасибо Jortega. Попробовал и получил исключение «элемент не взаимодействует». Это связано с тем, что меню появляется в виде другого окна / фрейма?
2. @Nick Это означает, что мы нашли элемент. Знаете ли вы, как узнать, есть ли более одного элемента, соответствующего используемому xpath
FindElements
?3. Спасибо, и это сработало. Он возвращал несколько вхождений, и проблема решена.