2016-09-21 9 views
2

Я попытался нажать на кнопку. Он имеет такую ​​структуру:Selenium: Нажмите на кнопку «<div><a></a></div>»

HTML Code

<div class="button-wrapper" id="button-verify-wrapper"> 
     <a x-ng-click="verifySfdcConnection()" class="clearfix float-left button-green"> 
      <div class="icon-green icon-green-verify"></div> 
      <div class="button-label ng-binding">Verify Connection</div> 
     </a> 
     <div x-ng-class="{'connection-verified':wizardData.inputSource.sfdc.connectionStatus}" x-ng-show="wizardData.inputSource.sfdc.connectionStatus" style="" class="connection-verified"></div> 
     </div> 

Любая помощь, как это сделать? Я пробовал это:

driver.findElement(By.xpath(".//*[@id='button-verify-wrapper']/a/div[1]")).click(); 

Но это не поможет. Благодаря

+0

Что вы имеете в виду, что не помогает ?? Есть ли исключения? И вы уверены, что желаемый элемент 'div' можно щелкнуть или элемент' a' доступен для клика? –

+0

Я думаю, это ссылка внутри кнопки. Просто не исключение, просто не нажимайте на нее. это кнопка кода: http://imgur.com/a/OmcDS –

ответ

0

Я думаю <a> элемент кликабельна здесь. Вы должны попытаться найти <a> элемент, а и выполнить click() действие, как показано ниже: -

  • с помощью By.cssSelector(): -

    driver.findElement(By.cssSelector("div#button-verify-wrapper > a")).click(); 
    
  • использованием By.linkText(): -

    driver.findElement(By.linkText("Verify Connection")).click(); 
    
  • использованием By.xpath(): -

    driver.findElement(By.xpath(".//a[normalize-space(.) = 'Verify Connection']")).click(); 
    

Если вы все еще не в состоянии выполнить щелчок, попробуйте в качестве альтернативного решения с использованием JavascriptExecutor, как показано ниже: -

((JavascriptExecutor)driver).executeScript("arguments[0].cli‌​ck()", driver.findElement(By.cssSelector("div#button-verify-wrapper > a"))); 
+0

Я пробовал оба, не работает. Любопытно, что ... это не исключение ... я думаю .... щелкнул текст, но не настоящую кнопку. –

+0

Но в представленном HTML ясно, что событие click получает элемент 'a', потому что функция JavaScript' verifySfdcConnection() 'вызывает элемент' a' при событии click. –

+0

Попробуйте использовать 'JavascriptExecutor' для выполнения щелчка как' ((JavascriptExecutor) драйвер) .executeScript ("arguments [0] .click()", driver.findElement (By.cssSelector ("div # button-verify-wrapper> a ")));' и дайте мне знать .. –

0

Вы должны нажать на ссылку, используя селектор CSS, как:
a[x-ng-click*='verifySfdcConnection']

+0

Я пробовал это: driver.findElement (By.cssSelector ("[x-ng-click * = 'verifySfdcConnection']")) .click(); Не работает. –

0

driver.findElement (By.id ("кнопка-проверить-обертка . «)) нажмите();

Примечание: 1. Если идентификатор или имя класса напрямую не требуется использовать xpath, можно напрямую использовать By.id и By.class 2. Чтобы выполнить действие над веб-элементом, мы должны знать свойства этого элемента ех. если это не кнопка, которую вы не можете выполнить нажмите на него

0

попробовать это: $("#button-verify-wrapper > a").click()

+0

Пробовал это: driver.findElement (By.cssSelector ("# button-verify-wrapper> a")). Click(); \t Не работает. –

+0

Является ли элемент в IFrame? если да, то это не сработает, вам нужно переключиться на IFrame –

+0

. Я уже решил эту проблему с помощью «JavascriptExecutor», спасибо в любом случае :) –

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