2016-12-19 4 views
3

У меня есть эта кнопка: -Как я могу нажать кнопку div с помощью selenium webdriver?

<div class="dsk-col-1-4 card new"> 
 
    <div class="div_center_div"> 
 
     <span class="icon icon_plus-black-symbol"></span> 
 
     <h2>Create</h2> 
 
    </div> 
 
    </div>

Но я попытался с помощью функции поиска элемента по имени класса: -

driver.findElementByClassName("dsk-col-1-4 card new").click(); 

Но это не работает. Любая помощь?

ответ

2

«по имени класса» локатор обычно ожидает имя одного класса быть переданы:

driver.findElementByClassName("card").click(); 

Если вы хотите использовать несколько классов, идти с «селектором CSS»

driver.findElementByCssSelector(".card.new").click(); 

Обратите внимание, что класс dsk-col-1-4 не очень хороший выбор для локатора элементов - это очень похоже на макет-ориентированное имя класса, которое не только имеет большую вероятность изменения b, но также не приносит никакой информации о элементе и его цели. card и new, с другой стороны, лучше подходят.

+0

я получаю CSS от этого элемента: driver.findElementByCssSelector (» html body div.main div.addon_cards.fluidwrap div.dsk-col-1-4.card.new "). click(); но не работает. –

0

Ok, так что я не мог понять, какой именно элемент вы хотите, чтобы нажать на, Так на основе моего предположения, попробуйте ниже XPaths:

1) если это <div class="dsk-col-1-4 card new">, что вы хотите, чтобы нажать

//div[contains(@class,'dsk-col-1-4 card new')] 

2) Если это то, что вы хотите нажать,

//span[contains(@class,'icon icon_plus-black-symbol')] 

3) Если <h2>Create</h2>, что вы хотите, нажмите

//h2[text()='Create'] 

Надеюсь, что это поможет!

0

Внутри локатора вы передаете несколько имен классов, и хотя они оба назначены элементу, функция findElementByClassName выполняется только тогда, когда это одно имя класса. Как я хотел бы сделать это было бы использовать findelement (By.Xpath()), в этом случае вы должны использовать

webDriver.findElement(By.xpath("//div[contains(@class,'dsk-col-1-4 card new')]")).click(); 

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

  • Нет связанных вопросов^_^