2013-02-12 204 views
1

我有以下的html頁面源,我嘗試通過xpath/cssselector單擊圖像。沒有人可以工作,你能幫我找到我的代碼問題嗎?我使用IE9。如何點擊selenium webdriver的圖片鏈接?

<pretable border="0" cellpadding="0" cellspacing="0" width="700"> 
     <tr> 
     <td rowspan="2" width="120"> 
      <a href="#" onclick="oCMenu.m['top1'].b.moveIt(8,60); oCMenu.showsub('top1'); " 
      onclick="return false" class="FontNormal"> 
      <img border="0" src="images/shim.gif" width="112" height="73"></a></td> 
     </tr> 
    </pretable> 

我的代碼是:

ieDriver.findElement(By.xpath("//html/table/tr[1]/td/a[@class='FontNormal']/img[@src='images 
    /shim.gif']")).click(); 

    ieDriver.findElement(By.cssselector("class='FontNormal'")).click(); 

回答

1

您正在試圖提供一個完整的XPath,但與你的HTML,只要其不匹配。

'table'與'pretable'不一樣,無論如何你都不需要提供完整的路徑。相反,只是嘗試一下本作的XPath的:

XPath("//a[@class='FontNormal']") 

這裏的XPath將搜索與類「FontNormal」附加任何鏈接。如果只有一個,這將選擇你的元素。如果有更多,你可能需要更具體。

0

對於Mozilla Firefox使用FirebugFirepath。這會自動爲你生成xpath。

Webelement element = driver.findElement(By.xpath("*xpath here*"); 
element.click(); 
1

先寫正確的XPath來確定要進行點擊操作

driver.findElement(By.Xpath("//img[@ src='images/shim.gif']")).click(); 
1

與現有的DOM結構我們可以始終與CSS選擇走這webelement。

CSS選擇

css=a[href='images/shim.gif'] 
css=a[href*='shim.gif'] 

然後單獨執行

driver.findElement(By.cssSelector("a[href='images/shim.gif']")).click(); 

OR

driver.findElement(By.cssSelector("a[href*='shim.gif']")).click(); 
0
element(By.xpath('//html/table/tr[1]/td/a[@class='FontNormal']/img[@src='images 
    /shim.gif']')).click(); 
+1

代碼塊不提供一個很好的答案。請添加解釋(爲什麼它解決了問題,錯誤在哪裏等) – 2016-01-11 20:50:53

相關問題