2016-09-24 2 views
0

Selenium не дает ошибок при нажатии на кнопку с отключенным доступом. Я пытаюсь щелкнуть элемент BUTTON, который отключается после первого щелчка.. Selenium click() метод работает, даже если элемент отключен

Сценарий: Я пытаюсь щелкнуть, а также извлечь текст элемента, который был отключен и изменил его текст после первого щелчка.

WebElement Button = driver.findElement(By.id("xyz")); 
String ValueB4click = Button.getAttribute("value"); 
System.out.println("value = " + ValueB4click); 
Button.click(); 
System.out.println("Button got disabled"); 
System.out.println("Hitting button 2nd time"); 
Button.click(); //----> this line should give error as button got disabled for 30 seconds after 1st click. 
System.out.println("value of button after click"); 

String Valueafterclick = Button.getAttribute("value"); 
System.out.println("value = " + Valueafterclick); 

шаги заключаются в следующем:

  1. значение = Создать PDF
  2. Кнопка был отключен
  3. задерживаясь кнопку 2-й раз
  4. значение кнопки после щелчка
  5. значение = Создание PDF ...

Вместо того, чтобы печатать только до третьей строки, а затем после исключения.

+0

я отключить webelement с помощью .disabled = истина или ложь в Javascript – Vivek

ответ

0

Нет, это короткий ответ. Selenium действует как виртуальная клавиатура & мышь по существу. Вы можете делать с ним только то, что вы обычно делаете на консоли, поэтому простой щелчок мышью на отключенном элементе ничего не сделает. Вам нужно как-то войти в HTML/JavaScript самой страницы и снова включить кнопку для чего-либо, что произойдет с Selenium.

0

Селен не будет нажимать отключен BUTTON. Наверное, я бы подумал, что это сделало бы исключение, как вы, но я не могу проверить это прямо сейчас. Вместо этого вы можете проверить BUTTON, чтобы узнать, отключен ли он после первого нажатия.

WebElement Button = driver.findElement(By.id("xyz")); 
System.out.println("Value of button before click: " + Button.getAttribute("value")); 
Button.click(); 
System.out.println("Button is disabled: " + Button.isDisabled()); 
System.out.println("Value of button after click: " + Button.getAttribute("value")); 
+0

Благодаря JeffC, но я больше заинтересован в ловле исключение, что селен должен быть выброшен .... кнопка есть отключена, но нажмите() метод отдавания техника его подводит любое исключение – Vivek

+0

@Vivek на самом деле вы пытаетесь проверить инвалидность на кешированном элементе, который уже был включен, вам нужно обновить один и тот же элемент, после чего вы увидите, что это приведет к исключению. Поэтому вы должны попробовать как «driver.findElement (By.id (« xyz »)). Click(); driver.findElement (By.id (« xyz »)). Click();' –

+0

@SaurabhGaur Elements не кэшируются. Это всего лишь ссылка на элемент. Проверьте это для себя. – JeffC

Смежные вопросы