diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java
index 2f7eb71329ffdd7b5e9f245f66b95acd40110248..fd162e0392d42cb6def9fba399143d66080c3e9c 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentItemEditorController.java
@@ -127,6 +127,7 @@ public class AssessmentItemEditorController extends BasicController {
 			mainVC = createVelocityContainer("assessment_item_editor");
 			mainVC.contextPut("restrictedEdit", restrictedEdit);
 			tabbedPane = new TabbedPane("itemTabs", getLocale());
+			tabbedPane.setElementCssClass("o_sel_assessment_item_config");
 			tabbedPane.addListener(this);
 			mainVC.put("tabbedpane", tabbedPane);
 	
@@ -166,6 +167,7 @@ public class AssessmentItemEditorController extends BasicController {
 			mainVC = createVelocityContainer("assessment_item_editor");
 			mainVC.contextPut("restrictedEdit", restrictedEdit);
 			tabbedPane = new TabbedPane("itemTabs", getLocale());
+			tabbedPane.setElementCssClass("o_sel_assessment_item_config");
 			tabbedPane.addListener(this);
 			mainVC.put("tabbedpane", tabbedPane);
 	
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/AssessmentItemRefEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/AssessmentItemRefEditorController.java
index 177c8d3e529f78f129792934c4d3fb15feef96d3..10d4fbc9c214ed831a44e5b2033ec7330525a658 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/AssessmentItemRefEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/AssessmentItemRefEditorController.java
@@ -58,6 +58,7 @@ public abstract class AssessmentItemRefEditorController extends FormBasicControl
 
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
+		formLayout.setElementCssClass("o_sel_assessment_item_options");
 		if(assessmentItemRef == null) return;
 		
 		Integer maxAttempts = null;
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/ChoiceScoreController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/ChoiceScoreController.java
index ec557e064ed13b27333aa30bc628e59a57e62cc1..fb9b1d43e1e49545885f0bfba6db1d87929d83b8 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/ChoiceScoreController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/ChoiceScoreController.java
@@ -95,6 +95,7 @@ public class ChoiceScoreController extends AssessmentItemRefEditorController imp
 		ScoreBuilder maxScore = itemBuilder.getMaxScoreBuilder();
 		String maxValue = maxScore == null ? "" : (maxScore.getScore() == null ? "" : maxScore.getScore().toString());
 		maxScoreEl = uifactory.addTextElement("max.score", "max.score", 8, maxValue, formLayout);
+		maxScoreEl.setElementCssClass("o_sel_assessment_item_max_score");
 		maxScoreEl.setEnabled(!restrictedEdit);
 		
 		String[] modeValues = new String[]{
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java
index 05f0d469622cd98360dd0ffc60142357fb81da5a..32fc08457fa9a5dcd49f1478679ab051175ddecf 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/DrawingEditorController.java
@@ -103,6 +103,7 @@ public class DrawingEditorController extends FormBasicController {
 		setFormContextHelp("Test editor QTI 2.1 in detail#details_testeditor_fragetypen_drawing");
 		
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), formLayout);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 		
 		String relativePath = rootDirectory.toPath().relativize(itemFile.toPath().getParent()).toString();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java
index 931426962b277835b44389e45818a3c553ab834a..55e8f4dc8f0a1b37e8a4030a7594edf5ba3aeec0 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/EssayEditorController.java
@@ -74,6 +74,7 @@ public class EssayEditorController extends FormBasicController {
 		setFormContextHelp("Test editor QTI 2.1 in detail#details_testeditor_fragetypen_freetext");
 		
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), formLayout);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 		
 		String relativePath = rootDirectory.toPath().relativize(itemFile.toPath().getParent()).toString();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java
index 94fe09aaee5c9df8e4bf1df7086ad6d729bc5755..8be0c78c4660a11ab88a502109d020a1be1b09fe 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/FIBEditorController.java
@@ -90,6 +90,7 @@ public class FIBEditorController extends FormBasicController {
 	@Override
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), formLayout);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 		
 		String relativePath = rootDirectory.toPath().relativize(itemFile.toPath().getParent()).toString();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java
index a444608e5ad7342327440b5fbc79b37667912b80..dfd7cca3274a4991cd9f32085edc769fba65589b 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HotspotEditorController.java
@@ -126,6 +126,7 @@ public class HotspotEditorController extends FormBasicController {
 		setFormContextHelp("Test editor QTI 2.1 in detail#details_testeditor_fragetypen_hotspot");
 		
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), formLayout);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 		
 		String relativePath = rootDirectory.toPath().relativize(itemFile.toPath().getParent()).toString();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HottextEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HottextEditorController.java
index 0844ae4c53293ce714639fb3a44d968d5f3ddbab..cd0d1651978aeb5b565e4ef1bb53e40708cc45dd 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HottextEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/HottextEditorController.java
@@ -79,6 +79,7 @@ public class HottextEditorController extends FormBasicController {
 	protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) {
 		setFormContextHelp("Test editor QTI 2.1 in detail#details_testeditor_fragetypen_hot");
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), formLayout);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 		
 		String relativePath = rootDirectory.toPath().relativize(itemFile.toPath().getParent()).toString();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java
index f972dbb0612e2179214119f6462f1246dcde7278..c35cbc73cbd1de2c1d35876eed10a9644a8a0d54 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java
@@ -95,6 +95,7 @@ public class KPrimEditorController extends FormBasicController {
 		formLayout.add("metadata", metadata);
 		
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), metadata);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 
 		String description = itemBuilder.getQuestion();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java
index 677027b9e9ea6bffddfdd7fb8212b3ccb5732d04..3d09ec0b36d115eea7003e1c30b699ac7bfd458f 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MatchEditorController.java
@@ -100,6 +100,7 @@ public class MatchEditorController extends FormBasicController {
 		formLayout.add("metadata", metadata);
 		
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), metadata);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 
 		String description = itemBuilder.getQuestion();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
index 2954cf194d428d8f2b1c7c435de5cd57e7398db0..f7b0d8dee4cc9eaa257f03609ee6b6722b4dca95 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
@@ -100,6 +100,7 @@ public class MultipleChoiceEditorController extends FormBasicController {
 		formLayout.add("metadata", metadata);
 
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), metadata);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 		
 		String description = itemBuilder.getQuestion();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
index e558c32bb10245cbe1e769679663d6d7d305dfa5..0679b526a19c62b73eecbb8c796029a3b4472ba6 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
@@ -97,6 +97,7 @@ public class SingleChoiceEditorController extends FormBasicController {
 		formLayout.add("metadata", metadata);
 
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), metadata);
+		titleEl.setElementCssClass("o_sel_assessment_item_title");
 		titleEl.setMandatory(true);
 
 		String description = itemBuilder.getQuestion();
@@ -154,6 +155,7 @@ public class SingleChoiceEditorController extends FormBasicController {
 		// Submit Button
 		FormLayoutContainer buttonsContainer = FormLayoutContainer.createDefaultFormLayout_2_10("buttons", getTranslator());
 		buttonsContainer.setRootForm(mainForm);
+		buttonsContainer.setElementCssClass("o_sel_choices_save");
 		formLayout.add(buttonsContainer);
 		formLayout.add("buttons", buttonsContainer);
 		uifactory.addFormSubmitButton("submit", buttonsContainer);
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/UploadEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/UploadEditorController.java
index b94385647ec98b936d8e4cf6ab0dea3991b53e63..abe0cd12ac6f1ee704eefcea72d373d7c68bb05e 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/UploadEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/UploadEditorController.java
@@ -71,6 +71,7 @@ public class UploadEditorController extends FormBasicController {
 		setFormContextHelp("Test editor QTI 2.1 in detail#details_testeditor_fragetypen_fileupload");
 		
 		titleEl = uifactory.addTextElement("title", "form.imd.title", -1, itemBuilder.getTitle(), formLayout);
+		titleEl.setElementCssClass("o_sel_qti_title");
 		titleEl.setMandatory(true);
 		
 		String relativePath = rootDirectory.toPath().relativize(itemFile.toPath().getParent()).toString();
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/_content/simple_choices.html b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/_content/simple_choices.html
index 38961fd6dc5fae23f2d3d3779430b67885042931..975341a7eb29537558fc04c5ceb9686d182f5ec8 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/_content/simple_choices.html
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/_content/simple_choices.html
@@ -5,13 +5,13 @@
 </div>
 
 #foreach($choice in $choices)
-<div class="form-group #if($f.hasError($item)) has-feedback has-error #end clearfix">
+<div class="form-group #if($f.hasError($item)) has-feedback has-error #end clearfix o_sel_choice_${foreach.index}">
 	<div class="col-sm-1">
 		#if($r.available(${choice.getRemove().getComponent().getComponentName()}) && $r.visible(${choice.getRemove().getComponent().getComponentName()}))
 			<div>$r.render(${choice.getRemove().getComponent().getComponentName()})</div>
 		#end
 		#if($r.available(${choice.getAdd().getComponent().getComponentName()}) && $r.visible(${choice.getAdd().getComponent().getComponentName()}))
-			<div>$r.render(${choice.getAdd().getComponent().getComponentName()})</div>
+			<div class="o_sel_add_choice_${foreach.count}">$r.render(${choice.getAdd().getComponent().getComponentName()})</div>
 		#end
 		#if($r.available(${choice.getUp().getComponent().getComponentName()}) && $r.visible(${choice.getUp().getComponent().getComponentName()}))
 			<div>$r.render(${choice.getUp().getComponent().getComponentName()})</div>
diff --git a/src/test/java/org/olat/selenium/ImsQTI21Test.java b/src/test/java/org/olat/selenium/ImsQTI21Test.java
index 6028018d580090f584ed4bd9e01f7d7b8b114c4e..d891ae2166435ae80bbe8fa3c95907879fc8ed41 100644
--- a/src/test/java/org/olat/selenium/ImsQTI21Test.java
+++ b/src/test/java/org/olat/selenium/ImsQTI21Test.java
@@ -42,9 +42,11 @@ import org.olat.selenium.page.NavigationPage;
 import org.olat.selenium.page.User;
 import org.olat.selenium.page.course.CourseEditorPageFragment;
 import org.olat.selenium.page.course.CoursePageFragment;
+import org.olat.selenium.page.qti.QTI21ChoicesScoreEditorPage;
 import org.olat.selenium.page.qti.QTI21ConfigurationCEPage;
 import org.olat.selenium.page.qti.QTI21EditorPage;
 import org.olat.selenium.page.qti.QTI21Page;
+import org.olat.selenium.page.qti.QTI21SingleChoiceEditorPage;
 import org.olat.selenium.page.repository.RepositoryAccessPage.UserAccess;
 import org.olat.selenium.page.user.UserToolsPage;
 import org.olat.test.ArquillianDeployments;
@@ -927,4 +929,50 @@ public class ImsQTI21Test {
 			.assertOnCourseAssessmentTestScore(4)
 			.assertOnCourseAttempts(1);
 	}
+	
+	/**
+	 * Test different settings in the single choice editor.
+	 * 
+	 * @param authorLoginPage
+	 * @throws IOException
+	 * @throws URISyntaxException
+	 */
+	@Test
+	@RunAsClient
+	public void choicesEditor(@InitialPage LoginPage authorLoginPage)
+	throws IOException, URISyntaxException {
+		UserVO author = new UserRestClient(deploymentUrl).createAuthor();
+		authorLoginPage.loginAs(author.getLogin(), author.getPassword());
+		
+		//upload a test
+		String qtiTestTitle = "Choices QTI 2.1 " + UUID.randomUUID();
+		navBar
+			.openAuthoringEnvironment()
+			.createQTI21Test(qtiTestTitle)
+			.clickToolbarBack();
+		
+		QTI21Page qtiPage = QTI21Page
+				.getQTI12Page(browser);
+		QTI21EditorPage qtiEditor = qtiPage
+				.edit();
+		//start a blank test
+		qtiEditor
+			.selectNode("Single choice")
+			.deleteNode();
+		//add a single choice
+		QTI21SingleChoiceEditorPage scEditor = qtiEditor
+			.addSingleChoice();
+		scEditor
+			.setAnswer(0, "Wrong answer")
+			.addChoice(1)
+			.setCorrect(1)
+			.setAnswer(1, "Correct answer")
+			.addChoice(2)
+			.setAnswer(2, "Pas la bonne")
+			.addChoice(3)
+			.setAnswer(3, "Nicht richtig")
+			.save();
+		QTI21ChoicesScoreEditorPage scScoreEditor = scEditor
+			.selectScores();
+	}
 }
diff --git a/src/test/java/org/olat/selenium/page/qti/QTI21AssessmentItemEditorPage.java b/src/test/java/org/olat/selenium/page/qti/QTI21AssessmentItemEditorPage.java
new file mode 100644
index 0000000000000000000000000000000000000000..cdaa50c59c958dbaf136a982670fc79c020ebc4b
--- /dev/null
+++ b/src/test/java/org/olat/selenium/page/qti/QTI21AssessmentItemEditorPage.java
@@ -0,0 +1,64 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.selenium.page.qti;
+
+import java.util.List;
+
+import org.junit.Assert;
+import org.olat.selenium.page.graphene.OOGraphene;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+import org.openqa.selenium.WebElement;
+
+/**
+ * 
+ * Initial date: 03 may 2017<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public abstract class QTI21AssessmentItemEditorPage {
+	
+	public static final By tabBarBy = By.cssSelector("ul.o_sel_assessment_item_config>li>a");
+	
+	protected final WebDriver browser;
+	
+	protected QTI21AssessmentItemEditorPage(WebDriver browser) {
+		this.browser = browser;
+	}
+	
+	protected QTI21AssessmentItemEditorPage selectTab(By tabBy) {
+		List<WebElement> tabLinks = browser.findElements(tabBarBy);
+
+		boolean found = false;
+		a_a:
+		for(WebElement tabLink:tabLinks) {
+			tabLink.click();
+			OOGraphene.waitBusy(browser);
+			List<WebElement> tabEls = browser.findElements(tabBy);
+			if(tabEls.size() > 0) {
+				found = true;
+				break a_a;
+			}
+		}
+
+		Assert.assertTrue("Found the tab", found);
+		return this;
+	}
+}
diff --git a/src/test/java/org/olat/selenium/page/qti/QTI21ChoicesScoreEditorPage.java b/src/test/java/org/olat/selenium/page/qti/QTI21ChoicesScoreEditorPage.java
new file mode 100644
index 0000000000000000000000000000000000000000..a095ae4764c4f78eb1e5903813f993065ac2419e
--- /dev/null
+++ b/src/test/java/org/olat/selenium/page/qti/QTI21ChoicesScoreEditorPage.java
@@ -0,0 +1,38 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.selenium.page.qti;
+
+import org.openqa.selenium.WebDriver;
+
+/**
+ * 
+ * Initial date: 3 mai 2017<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class QTI21ChoicesScoreEditorPage {
+	
+	private final WebDriver browser;
+	
+	public QTI21ChoicesScoreEditorPage(WebDriver browser) {
+		this.browser = browser;
+	}
+
+}
diff --git a/src/test/java/org/olat/selenium/page/qti/QTI21EditorPage.java b/src/test/java/org/olat/selenium/page/qti/QTI21EditorPage.java
index dce4a95ee56b102150d165ea7139e2c1c49c4a69..438bf39c0d5b718a2bb90865e40c57d984b8b89d 100644
--- a/src/test/java/org/olat/selenium/page/qti/QTI21EditorPage.java
+++ b/src/test/java/org/olat/selenium/page/qti/QTI21EditorPage.java
@@ -19,6 +19,7 @@
  */
 package org.olat.selenium.page.qti;
 
+import org.olat.ims.qti21.model.QTI21QuestionType;
 import org.olat.selenium.page.core.MenuTreePageFragment;
 import org.olat.selenium.page.graphene.OOGraphene;
 import org.openqa.selenium.By;
@@ -82,6 +83,26 @@ public class QTI21EditorPage {
 		return this;
 	}
 	
+	public QTI21SingleChoiceEditorPage addSingleChoice() {
+		addQuestion(QTI21QuestionType.sc);
+		return new QTI21SingleChoiceEditorPage(browser);
+	}
+	
+	public QTI21MultipleChoiceEditorPage addMultipleChoice() {
+		addQuestion(QTI21QuestionType.mc);
+		return new QTI21MultipleChoiceEditorPage(browser);
+	}
+	
+	private QTI21EditorPage addQuestion(QTI21QuestionType type) {
+		openElementsMenu();
+		
+		By addBy = By.xpath("//ul[contains(@class,'o_sel_qti_elements')]//a[contains(@onclick,'new.')][i[contains(@class,'" + type.getCssClass() + "')]]");
+		browser.findElement(addBy).click();
+		OOGraphene.waitBusy(browser);
+		OOGraphene.waitElement(By.className("o_sel_assessment_item_title"), browser);
+		return this;
+	}
+	
 	public QTI21EditorPage openChangeMenu() {
 		By changeMenuCaret = By.cssSelector("a.o_sel_qti_change_node");
 		browser.findElement(changeMenuCaret).click();
diff --git a/src/test/java/org/olat/selenium/page/qti/QTI21MultipleChoiceEditorPage.java b/src/test/java/org/olat/selenium/page/qti/QTI21MultipleChoiceEditorPage.java
new file mode 100644
index 0000000000000000000000000000000000000000..77ea198c1cf040f6b693495c6a8bcd6795bb7e79
--- /dev/null
+++ b/src/test/java/org/olat/selenium/page/qti/QTI21MultipleChoiceEditorPage.java
@@ -0,0 +1,36 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.selenium.page.qti;
+
+import org.openqa.selenium.WebDriver;
+
+/**
+ * 
+ * Initial date: 03 may 2017<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class QTI21MultipleChoiceEditorPage extends QTI21AssessmentItemEditorPage {
+	
+	public QTI21MultipleChoiceEditorPage(WebDriver browser) {
+		super(browser);
+	}
+
+}
diff --git a/src/test/java/org/olat/selenium/page/qti/QTI21Page.java b/src/test/java/org/olat/selenium/page/qti/QTI21Page.java
index 35705df9128982188c205f7e3dfdce59e82928e7..0c23be3f3f6ae191c6e9eba53604d4fab5e84d9c 100644
--- a/src/test/java/org/olat/selenium/page/qti/QTI21Page.java
+++ b/src/test/java/org/olat/selenium/page/qti/QTI21Page.java
@@ -47,7 +47,9 @@ public class QTI21Page {
 	}
 	
 	public static QTI21Page getQTI12Page(WebDriver browser) {
-		WebElement main = browser.findElement(By.id("o_main_wrapper"));
+		By mainBy = By.id("o_main_wrapper");
+		OOGraphene.waitElement(mainBy, 5, browser);
+		WebElement main = browser.findElement(mainBy);
 		Assert.assertTrue(main.isDisplayed());
 		return new QTI21Page(browser);
 	}
diff --git a/src/test/java/org/olat/selenium/page/qti/QTI21SingleChoiceEditorPage.java b/src/test/java/org/olat/selenium/page/qti/QTI21SingleChoiceEditorPage.java
new file mode 100644
index 0000000000000000000000000000000000000000..4dc34383f75d46842fbb723190f43ade3633021e
--- /dev/null
+++ b/src/test/java/org/olat/selenium/page/qti/QTI21SingleChoiceEditorPage.java
@@ -0,0 +1,77 @@
+/**
+ * <a href="http://www.openolat.org">
+ * OpenOLAT - Online Learning and Training</a><br>
+ * <p>
+ * Licensed under the Apache License, Version 2.0 (the "License"); <br>
+ * you may not use this file except in compliance with the License.<br>
+ * You may obtain a copy of the License at the
+ * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a>
+ * <p>
+ * Unless required by applicable law or agreed to in writing,<br>
+ * software distributed under the License is distributed on an "AS IS" BASIS, <br>
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br>
+ * See the License for the specific language governing permissions and <br>
+ * limitations under the License.
+ * <p>
+ * Initial code contributed and copyrighted by<br>
+ * frentix GmbH, http://www.frentix.com
+ * <p>
+ */
+package org.olat.selenium.page.qti;
+
+import org.olat.selenium.page.graphene.OOGraphene;
+import org.openqa.selenium.By;
+import org.openqa.selenium.WebDriver;
+
+/**
+ * 
+ * Initial date: 03 may 2017<br>
+ * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com
+ *
+ */
+public class QTI21SingleChoiceEditorPage extends QTI21AssessmentItemEditorPage {
+
+	public QTI21SingleChoiceEditorPage(WebDriver browser) {
+		super(browser);
+	}
+	
+	/**
+	 * Add a new choice.
+	 * 
+	 * @return Itself
+	 */
+	public QTI21SingleChoiceEditorPage addChoice(int position) {
+		By addBy = By.xpath("//div[contains(@class,'o_sel_add_choice_" + position + "')]/a");
+		browser.findElement(addBy).click();
+		OOGraphene.waitBusy(browser);
+		//wait the next element
+		By addedBy = By.xpath("//div[contains(@class,'o_sel_add_choice_" + (position + 1) + "')]/a");
+		OOGraphene.waitElement(addedBy, 5, browser);
+		return this;
+	}
+	
+	public QTI21SingleChoiceEditorPage setCorrect(int position) {
+		By correctBy = By.xpath("//div[contains(@class,'o_sel_choice_" + position + "')]//input[contains(@id,'oo_correct-')]");
+		browser.findElement(correctBy).click();
+		return this;
+	}
+	
+	public QTI21SingleChoiceEditorPage setAnswer(int position, String answer) {
+		String containerCssSelector = "div.o_sel_choice_" + position;
+		OOGraphene.tinymce(answer, containerCssSelector, browser);
+		return this;
+	}
+	
+	public QTI21SingleChoiceEditorPage save() {
+		By saveBy = By.cssSelector("fieldset.o_sel_choices_save button.btn.btn-primary");
+		browser.findElement(saveBy).click();
+		OOGraphene.waitBusy(browser);
+		return this;
+	}
+	
+	public QTI21ChoicesScoreEditorPage selectScores() {
+		selectTab(By.className("o_sel_assessment_item_options"));
+		return new QTI21ChoicesScoreEditorPage(browser);
+	}
+
+}