2013-09-27 191 views
2

我在嘗試點擊使用Selenium Webdriver的超鏈接時遇到問題。我嘗試使用CssSelector以及XPath,似乎沒有任何工作。我想要做的只是點擊Google文字。 。點擊使用Selenium Webdriver的超鏈接

<div class="hello"> 
    <div class="test"> 
    <table class="first first-table"> 
    <tbody> 
    <tr> 
    <td class="second-table"> 
    <a id="dummyID" href="https://www.google.com" target="_blank">Google</a> 
    </td> 
    </tr> 
    </tbody> 
    </table>` 

我試圖driver.FindElement(By.XPath( 「// * [@ id中= 'dummyID']」))點擊();我也嘗試使用href來查找鏈接...幾乎所有的東西。所有的時間我都「無法定位元素」異常。任何人有任何建議?

+3

是包含在框架或iframe中的鏈接? – Richard

+0

@Richard這是一個很好的問題.. –

+0

看着使用Firebug的HTML,我沒有看到任何框架/ iframe。 – user1493537

回答

3

嘗試此:看到

driver.FindElement(By.LinkText("Google")).Click(); 

查找如果元素是一個框架或iframe中。如果是,你需要使用:

driver.SwitchTo().Frame("frameID"); 
+0

那麼這裏有什麼問題'driver.FindElement(By.XPath(「// * [@ id ='dummyID']」))。Click()'? –

+0

相信我,我也嘗試過,並沒有奏效。 – user1493537

+0

它沒有框架..至少這些pagesource不顯示任何框架。 – user1493537

0

您可以輕鬆地找到ID:

driver.FindElement(By.id("dummyID")).Click(); 

或者你可以在你的場景中使用此XPath:

driver.FindElement(By.XPath("//a[@id='dummyID']")).Click(); 

你可以通過id直接找到元素,這是一種簡單而有效的方法。 我希望你能用任何這些代碼片段得到你想要的點擊,兩者都應該是一樣的。肯定會起作用。

1

您可以使用

driver.FindElement(By.LinkText("Google")).Click(); 
相關問題