2016-04-22 158 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元素,沒有爲什麼我需要這樣做。 –