2015-04-22 4 views
0

Я пытаюсь нажать кнопку, используя веб-селен. Работа в порядке со следующим XPathНевозможно щелкнуть по кнопке во всплывающем окне с помощью webdriver

driver.FindElement(By.XPath("html/body/div[36]/div[3]/div/button[1]")).click(); 

он нажимает на кнопку штраф, но если я пытаюсь найти его, используя класс, то это обыкновение нажмите его

driver.FindElement(By.XPath("//div[@class='ui-dialog-buttonset']/button[1]")).click(); 

Любая идея, что я делаю неправильно. Фактический исходный код выглядит следующим образом: -

<div class="ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"> 

    ::before 
    <div class="ui-dialog-buttonset"> 
     <button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" type="button" role="button" aria-disabled="false"> 

    <span class="ui-button-text"></span> 

</button> 
<button class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" type="button" role="button" aria-disabled="false"> 

       <span class="ui-button-text"></span> 
      </button> 
     </div> 
     ::after 
    </div> 

</div> 
+0

Выражения пути выглядят отлично. Уверены, что они эквивалентны? (В качестве альтернативы, покажите больше входного документа, чтобы другие могли узнать об этом.) –

ответ

0

Я вижу две кнопки с тем же названием. Вы можете попробовать следующее:

List<WebElement> list = driver.findElements(By.cssSelector("button[class=\"ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only\"]")); 
//click on the first button 
list.get(0).click(); 
+0

Это будет работать? если имя класса с пробелом. Я так не думаю. Не могли бы вы исправить меня, если я ошибаюсь – saravana

+0

Возможно, вы правы. Запрос cssSelector или Xpath будет работать - http://stackoverflow.com/questions/7475449/webdriver-classname-with-space-using-java – LittlePanda

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