2016-09-07 56 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中。