2016-02-02 2 views
2

HTML код:Не удалось нажать кнопку в java selenium?

<button type="button" class="btn btn-main dropdown-toggle" dropdown-toggle="" aria-haspopup="true" aria-expanded="false">create 
       <span class="icon-dir-down"></span> 
       <span class="sr-only">Toggle Dropdown</span> 
      </button> 

Используя имя класса я попытался нажать на кнопку, но я не в состоянии нажать.

Я попытался следующий код:

driver.findElement(By.className("btn btn-main dropdown-toggle")).click(); 
+0

Есть ли другие «веб-элементы» в вашем проекте, которые вы находите через «className»? И работают ли они? – Brian

+0

@Brian Нет .. помогите мне, пожалуйста, я не знаю, как это сделать ... пожалуйста –

+0

selenium contributor здесь. ознакомьтесь с [этой проблемой] (https://github.com/SeleniumHQ/selenium/issues/1480), хранящейся в нашем репозитории. вы неправильно используете 'className'. Ответ ПитераРасмуссена - лучший способ его выполнить. – sircapsalot

ответ

3

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

driver.findElement(By.cssSelector(".btn.btn-main.dropdown-toggle")).click(); 
+2

ОП, Питер избил меня. Я собирался предложить его также с помощью 'cssSelector'. Дать ему шанс. – Brian

+0

@Peter Работает. спасибо –

+1

@Brian Спасибо ... –

1

Выполнение щелчка через WebDriver имеет некоторые неожиданный behaviors.If его не работает, то альтернативный способом JavascriptExecutor класса, чтобы сделать это. Его всегда предпочтительнее использовать метод click()WebElement.

WebElement element = driver.findElement(By.cssSelector(".btn.btn-main.dropdown-toggle")); 
JavascriptExecutor executor = (JavascriptExecutor)driver; 
executor.executeScript("arguments[0].click();", element); 
Смежные вопросы