简体   繁体   中英

Selenium: Click on a “<div><a></a></div>” button

I tried to click on a button. It has this structure:

HTML代码

<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>

Any help how to do it? I tried this:

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

But it doesn't help. Thanks

您应该使用css选择器单击链接,例如:
a[x-ng-click*='verifySfdcConnection']

I think <a> element is clickable here. You should try to locate <a> element instead and perform click() action as below :-

  • using By.cssSelector() :-

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

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

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

If you're still unable to perform click, try as an alternate solution using JavascriptExecutor as below :-

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

driver.findElement(By.id("button-verify-wrapper")).click();

Note: 1. if ID or class name is directly given no need to use xpath, can directly use By.id and By.class 2. To perform an action on web element we should know the properties of that element ex. if it is not a button you can not perform click on it

试试这个: $("#button-verify-wrapper > a").click()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM