Как работать с формой, имеющей разные типы ответов, такие как радио, флажок, дата, текстовое поле и т. Д. - PullRequest
0 голосов
/ 06 мая 2020

[https://i.stack.imgur.com/HjW3d.png] Мой скрипт заполняет форму через скрипт, но теперь хотел, чтобы в консоль выводились ответы и название раздела / подраздела.

Пожалуйста, обратитесь к 2 изображениям image1 , image2 , которые по отдельности работают успешно, но мне нужно объединить эти 2, где я нахожу трудность.

Форма имеет все 11 разделов, каждый раздел содержит заголовок, подпункт -заголовок (и), вопрос (метка) и тип ответа на него, который может быть текстом, датой, радиокнопкой, флажком и т. д. c. Как показано на изображении , каждый раздел имеет div[class='questions-parent-container'], который содержит число div[@class='answers-container col ng-star-inserted'].

Пожалуйста, обратитесь к 3 изображениям, которые дадут вам представление о том, сколько вопросов в каждом разделе ?. screenshot1 , screenshot2 , screeshot 3 .

Я не могу найти общее количество разделов вопросов.

Пожалуйста, обратитесь к изображению и другому изображению для class = 'TextBox', либо там есть только метка, либо метка, а также текстовое поле ввода. Через случайную функцию он вводит случайную строку, но не может ее распечатать, поскольку некоторые текстовые поля содержат только метку. Я просто хочу вывести всю форму вместе с разделом, названием подраздела и всеми вопросами с ответами.

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 08 мая 2020

Чтобы перейти к дочернему элементу дочернего элемента родительского объекта, используйте xpath или css. Сначала вам нужно найти родителя, а затем пройти до дочернего:

List<WebElement> answers =driver.findElements(By.cssSelector("div[class='questions-parent-container']>div>div>div"));

System.out.println(answers.size()); // this will give you total answers unders that question container

for(webElement answer: answers)  // Now Iterate over answers list to get class attribute
{
String answerType= answer. getAttribute("class");  //It will give you whether it is Textbox, dropdown, radio button or checkbox

//Now you can perform any actions based on your answerType using if-else loop or Switch-case staements.

} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...