2016-09-07 115 views
1

我想點擊下面的selenium中的href鏈接。我曾嘗試使用xpath和By.linkText()By.cssSelectort(),但我無法找到該元素。任何幫助深表感謝在Selenium Java中打開href鏈接

driver.findElement(By.linkText("CCC_PH3_Sandbox_Keybridge: CCC PH3 Sandbox Keybridge")).click(); 

By.xpath()但它無法找到元素

WebElement course = driver.findElementByXPath("html/body/table/tbody/tr/td/div/div[2]/table/tbody/tr/td[3]/a/span[1]"); 
course.click(); 

CSS定位:

driver.findElement(By.cssSelector("a[href*='/webapps/portal']")).click(); 

這裏是HTML片段:

<img width="12" height="12" src="/images/ci/icons/bookopen_li.gif" alt=""> 
<a target="_top" href=" /webapps/portal/frameset.jsp?tab_tab_group_id=_2_1&url=%2Fwebapps%2Fblackboard%2Fexecute%2Flauncher%3Ftype%3DCourse%26id%3D_2135_1%26url%3D">CCC_PH3_Sandbox_Keybridge: CCC PH3 Sandbox Keybridge</a> 
+0

你遇到了哪些異常?只需檢查鏈接是在框架中還是現在。 –

+0

請檢查元素是否可見 –

+0

你正在得到什麼樣的錯誤或是否有任何框架作爲它的根? – noor

回答

0

嘗試如下使用By.partialLinkText(): -

new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.partialLinkText("CCC_PH3_Sandbox_Keybridge"))).click(); 

編輯: - 正如你所提到的這個元素是二I幀ID爲navFramecontentFrame裏面,你需要找到之前,交換機,I幀一個接一個元素爲: -

driver.switchTo().frame("navFrame"); 
driver.switchTo().frame("contentFrame"); 

//Now find desire element 
new WebDriverWait(driver, 10).until(ExpectedConditions.elementToBeClickable(By.partialLinkText("CCC_PH3_Sandbox_Keybridge"))).click(); 

//After doing all stuff inside iframe switch back to default content 
driver.switchTo().defaultContent(); 
+0

即使我看到元素鏈接並仍然等待元素可點擊,仍然超時其可點擊的 – colin

+1

您是否在尋找框架或iframe?可能是這個元素是內部幀或iframe ..如果是你需要切換該幀之前找到此鏈接..驗證它 –

+1

它有這兩個,所以它似乎是在一個iframe中。