2016-04-22 155 views
0

我havw二元里面的iframe相同的属性,..无法找到元用相同的ID

问题是,驾驶员可以点击第一个元素,但不能点击第二个元素。

以下是一个HTML:

第一招:

<div class="textalgncent mergeSteps mgrT12"> 

        <a onclick="javascript:return LoadNextStep('2','1');" id="lnkNextStep" title="Next Step" class="BlueBtn mgrRL10" href="javascript:__doPostBack('lnkNextStep','')">NEXT STEP</a> 
        <a onclick="javascript:return Refresh(1);" id="lnkRefresh" title="Refresh" class="BlueBtn mgrRL10" href="javascript:__doPostBack('lnkRefresh','')" style="display: none;">REFRESH</a> 
        <a onclick="javascript:return CancelMergeContact();" id="lnkCancel" title="Cancel" class="DisableBtn mgrRL10" href="javascript:__doPostBack('lnkCancel','')">CANCEL</a> 


       </div> 

第二个:

<div class="textalgncent mergeSteps mgrT12"> 

        <a onclick="javascript:return LoadNextStep('3','2');" id="lnkNextStep" title="Next Step" class="BlueBtn mgrRL10" href="javascript:__doPostBack('lnkNextStep','')">NEXT STEP</a> 
        <a onclick="javascript:return Refresh(2);" id="lnkRefresh" title="Refresh" class="BlueBtn mgrRL10" href="javascript:__doPostBack('lnkRefresh','')" style="display: inline-block;">REFRESH</a> 
        <a onclick="javascript:return CancelMergeContact();" id="lnkCancel" title="Cancel" class="DisableBtn mgrRL10" href="javascript:__doPostBack('lnkCancel','')">CANCEL</a> 

        <a onclick="javascript:return LoadNextStep('1','2');" id="lnkBack" title="Back" class="BlueBtn" href="javascript:__doPostBack('lnkBack','')">BACK</a> 
       </div> 

如何让我的司机点击第二个,有他们在同一框架和具有相同的属性。

码我曾尝试: -

driver.switchTo().frame("fbContent"); 
driver.findElement(By.xpath("//*[@id='ddlDominantId']")).click(); 
Thread.sleep(2000); 
driver.findElement(By.xpath("//*[@id='ddlDominantId']/option[2]")).click(); 
waitele(); 
driver.findElement(By.xpath("//*[@id='lnkNextStep']")).click(); 
Thread.sleep(5000); 
((JavascriptExecutor) driver).executeScript("arguments[0].scrollIntoView();", driver.findElement(By.xpath("//*[@onclick='lnkNextStep']"))); 
driver.findElement(By.xpath("//*[@id='lnkNextStep']")).click() 
+0

告诉你那边尝试 – Andersson

+0

不得不试图等待代码?你现在想点击Back吗?什么是你的第一个元素 –

+0

显示代码和例外,如果你面临 –

回答

0

你好,请做到像下面

注意考虑说话,你是我框内是driver.switchTo().frame("fbContent");

现在它很简单使用具有相同属性的两个元素进行工作,请像下面那样进行:在列表中使用共同属性

List<WebElement> commonElements = driver.findElements(By.id("lnkNextStep")); 
     //Now only for verification purpose check the size 
     // otherwise not required 

    System.out.println("Size of the common elements in the ifrmae is : "+commonElements.size()); 

    // now its very simple two click the second element with same attribute 
    commonElements.get(1).click(); // as index of 2nd element will be 1. 

希望这能解决您的查询

+0

否它不适用于我,在这种情况下ELement的大小达到1。 –

+0

我已重新验证在我的结束和其预期的工作,你可以提供给我的实际网页,以便我可以看看那 –

+0

它的工作,我需要再次切换到相同的iframe,然后它能够找到Web元素,没有为什么我需要这样做。 –