Dynamics365 — не удается найти соответствующий элемент при нажатии кнопки и появлении всплывающего окна

#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. Спасибо, и это сработало. Он возвращал несколько вхождений, и проблема решена.