1
votes

comment enregistrer la valeur de la case à cocher après le chargement de la page dans le sélénium

Comment puis-je enregistrer l'état de la case cochée et utiliser la valeur après le chargement d'une page. Avec le code mentionné ci-dessous, je clique sur une case à cocher, mais après avoir cliqué sur le bouton de calcul, ma page se charge et la case est décochée.

Voici mon code:

INPUT onclick="document.all('hdnIsValueChanged').value=1; if (F1372B03C0090002_01082008__ctl2_HiddenBox_F1372B03C0090002.value==0) {F1372B03C0090002_01082008__ctl2_HiddenBox_F1372B03C0090002.value=1;};" id=F1372B03C0090002_01082008__ctl2_F1372B03C0090002_01082008C2 CHECKED type=checkbox value="" name=F1372B03C0090002_01082008:_ctl2:F1372B03C0090002_01082008C2

Ceci est le formulaire Html pour la case à cocher

driver.findElement(By.id("F1372B03C0090002_01082008__ctl2_F1372B03C0090002_01082008C2")).click();


0 commentaires

3 Réponses :


0
votes

Avez-vous essayé de stocker leurs valeurs dans des variables juste avant de cliquer sur le bouton de calcul?

Après le rechargement, vous pouvez leur attribuer correctement des valeurs.


3 commentaires

Non je vais essayer ça


Ne fonctionne pas même après avoir stocké la valeur dans la variable. WebElement checkBox = driver.findElement (By.id ("F1372B03C0090002_01082008‌ __ctl2_F1372B03C0090‌ 002_01082008C2")); checkBox.click ();


valeur booléenne = diver.findElement (By.id ("F1372B03C0090002_01082008__ctl2_F13‌ 72B03C0090002_010820‌ 08C2")). isSelected () ‌;



0
votes

Veuillez utiliser l'extrait de code ci-dessous pour vérifier l'état de la case et cliquer dessus.

WebElement checkBox1 = driver.findElement(By.id("F1372B03C0090002_01082008__ctl2_F1372B03C0090002_01082008C2"));
		boolean checkboxState = checkBox1.isSelected();
		if (checkBox1.isSelected() == true) {
			System.out.println("Check box is selected");
		} else {
			System.out.println("Check box is not selected");
			checkBox1.click();
		}


1 commentaires

J'ai essayé ça ... Pas de chance. Lorsque je clique sur Calculer, la case à cocher est décochée ... Comment puis-je utiliser les cookies ou le stockage local pour enregistrer l'état de la case à cocher afin qu'elle récupère la valeur après le chargement de la page



0
votes

Vous devez stocker les valeurs dans une carte avant de cliquer sur Calculer, créer un clic personnalisé pour qu'il ajoute l'élément à la carte, voici un exemple simple:

private HashMap<String, String> values;

// this method will click on the element(checking it) and use store method
public void checkAndStore(final WebElement element) {
    Actions action = new Actions(driver);
    action.moveToElement(element).click(element).build().perform();
    addToMap(element);
}

// here we store the id of element as key to the map and value as value
private void addToMap(WebElement element) {
    values.put(element.getAttribute("id"), element.getAttribute("value"));
}

// this is your getter
public HashMap<String, String> getMyMap() {
    return this.values;
}

// and now you can click as many checkbox as you want and get the result aftewards:
@Test
void myTest() throws Exception {
    checkAndStore(driver.findElement(By.id("1")));
    checkAndStore(driver.findElement(By.id("2")));
    checkAndStore(driver.findElement(By.id("3")));
    driver.findElement(By.id("myCalculateButton")).click();
    System.out.println(getMyMap().entrySet());
}


0 commentaires