2016-09-21 2 views
2

Ich versuchte, auf eine Schaltfläche klicken. Es hat diese Struktur:Selen: Klicken Sie auf eine Schaltfläche "<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> 

Jede Hilfe, wie es zu tun? Ich habe es versucht:

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

Aber es hilft nicht. Dank

+0

Was meinen Sie es hilft nicht ?? Gibt es eine Ausnahme? Und sind Sie sicher, dass das gewünschte "div" -Element anklickbar oder "a" -Element anklickbar ist? –

+0

Ich denke, ist ein Link in einem Button .. nur keine Ausnahme, nur nicht klicken Sie darauf. Das ist die Schaltfläche des Codes: http://imgur.com/a/OmcDS –

Antwort

0

Ich denke, <a> Element hier anklickbar ist. Sie sollten versuchen, <a> Element stattdessen zu lokalisieren und click() Aktion ausführen wie folgt: -

  • mit By.cssSelector(): -

    driver.findElement(By.cssSelector("div#button-verify-wrapper > a")).click(); 
    
  • By.linkText() mit: -

    driver.findElement(By.linkText("Verify Connection")).click(); 
    
  • mit By.xpath(): -

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

Wenn Sie danach immer noch nicht Klick ausführen, versuchen Sie als eine alternative Lösung JavascriptExecutor wie unten: -

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

Ich habe beide versucht, funktioniert nicht. Das Kuriose hier ist ... es hat keine Ausnahme ... ich denke .... klickt auf den Text, aber nicht auf den richtigen Knopf. –

+0

Aber in bereitgestelltem HTML sieht es eindeutig aus, dass click-Ereignis von 'a'-Element empfangen wird, da die JavaScript-Funktion' verifySfdcConnection() 'ein' a'-Element bei Klickereignis aufruft. –

+0

Versuchen Sie einmal, 'JavascriptExecutor' zu verwenden, um als' ((JavascriptExecutor) -Treiber zu klicken) .executeScript ("Argumente [0] .click()", driver.findElement (By.cssSelector ("div # button-verify-wrapper> a "))); und lassen Sie mich wissen .. –

0

Sie auf den Link klicken sollte einen CSS-Selektor wie mit:
a[x-ng-click*='verifySfdcConnection']

+0

Ich habe Folgendes versucht: driver.findElement (By.cssSelector ("[x-ng-click * = 'verifySfdcConnection']")) .klicken(); Funktioniert nicht. –

0

driver.findElement (By.id ("Taste-Überprüfungs-Wrapper ")).klicken();

Hinweis: 1. Wenn der ID- oder Klassenname direkt angegeben wird, müssen Sie xpath nicht verwenden. Sie können direkt By.id und By.class verwenden 2. Um eine Aktion für das Webelement auszuführen, sollten die Eigenschaften dieses Elements bekannt sein Ex. wenn es nicht eine Taste, die Sie nicht ausführen können darauf klicken

0

versuchen Sie dies: $("#button-verify-wrapper > a").click()

+0

Versucht dies: driver.findElement (By.cssSelector ("# button-verify-wrapper> a")). Click(); \t Funktioniert nicht. –

+0

Ist das Element in einem IFrame? Wenn ja, das wird nicht funktionieren, müssen Sie zu IFrame wechseln –

+0

Ich habe dieses Problem bereits mit "JavascriptExecutor" gelöst, danke trotzdem :) –