как сохранить значение флажка после загрузки страницы в селене - PullRequest
0 голосов
/ 18 февраля 2019

Как сохранить состояние флажка и использовать значение после загрузки страницы.С указанным ниже кодом я нажимаю на флажок, но после нажатия кнопки «Рассчитать» моя страница загружается, и флажок снимается.

Это мой код:

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

Это HTMLФорма для галочки

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

Ответы [ 3 ]

0 голосов
/ 18 февраля 2019

Пожалуйста, используйте приведенный ниже фрагмент кода, чтобы проверить состояние флажка и нажать на него.

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();
		}
0 голосов
/ 19 февраля 2019

Вы должны сохранить значения внутри карты, прежде чем нажимать кнопку «Рассчитать», создайте пользовательский щелчок, чтобы добавить элемент на карту, вот простой пример:

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 голосов
/ 18 февраля 2019

Пытались ли вы сохранить их значения в переменных непосредственно перед нажатием кнопки «Рассчитать»?

После перезагрузки вы можете правильно присвоить им значения.

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