2010-08-04 27 views
1

我對這一切都很陌生,但是我很久以前就已經學會了一些關於python的東西,你能幫我指定正確的selenium XPath來點擊嗎?使用xpath告訴硒在哪裏點擊?

我試過這種方法,但沒有工作,顯然:(

self.selenium.click("xpath=//html/body/div/div/div/div[4]/ul/li[3]/a") 

如果你徘徊在哪裏我得到那個醜陋的XPath,它Firebug的複製XPath選項的。

我認爲HTML片段是隻要地獄,所以我不能做得比這更多:

<html> 
    <body> 
    <div id="outer_wrapper"> 
     <div id="container"> 
     <div id="header"> 
      <div id="menunav"> 
      <ul>         
       <li><a title="Login page" href="[dest]">Login</a></li>        
       <li><a title="" href="[dest]">Sitemap</a></li> 
       **<li><a title="" href="[dest]">Administration</a></li>** 
      </ul> 
      </div> 
     </div> 
     </div> 
    </div> 
    </body> 
</html> 
+3

它會幫助,如果你給我們這個HTML的工作 – AutomatedTester 2010-08-04 13:48:09

+0

+1的HTML片段 – 2010-08-04 13:52:34

+0

是動態生成的HTML,使你想點擊的項目每次都改變? – 2010-08-04 14:32:21

回答

6

以下是你可以用它來點擊Administration鏈接了幾個例子定位器(基於你的XPath和HTML代碼片段)。正確的Selenium命令是click

  • link=Administration
  • css=a:contains(Administration)
  • css=#menunav a:nth-child(3)
  • xpath=id('menunav')/descendant::a[3]
  • //a[text()='Administration']
  • //a[contains(text(), 'Administration')]

我希望這點你在正確的方向。

+0

感謝戴夫,但我仍然不明白你爲什麼使用text()方法,不應該是文本('管理')? – decebal 2010-08-05 09:19:39

+0

你說得對,在這種情況下你不需要使用'contains'。您可以使用'// a [text()='管理']'代替。 – 2010-08-05 10:06:12