2014-04-14 61 views
1

我收到以下錯誤:硒無效的XPath錯誤

com.thoughtworks.selenium.SeleniumException: ERROR: Invalid xpath [2]: //input[@value='Accedi'] 
    at com.thoughtworks.selenium.HttpCommandProcessor.throwAssertionFailureExceptionOrError(HttpCommandProcessor.java:112) 
    at com.thoughtworks.selenium.HttpCommandProcessor.doCommand(HttpCommandProcessor.java:106) 
    at com.thoughtworks.selenium.DefaultSelenium.click(DefaultSelenium.java:193) 

文件的XML部分是:

<p> 
<div><input class="login button" type="submit" value="Accedi" /></div> 
</p> 

我的Java代碼是:

selenium.click("//input[@value='Accedi']"); 

我曾嘗試將單引號改爲雙引號,將xpath更改爲:

/html/body/div[3]/div[2]/form/p[4]/div/input[@value="Accedi"] 

我從工具中獲得的。

爲什麼我嘗試過的所有XPath都是錯誤的?

+0

打開頁面後還在等待嗎?可能是因爲當你嘗試點擊它時,這個元素還沒有出現。 – user1433852

+0

xpath看起來沒什麼問題。可能與[問題6055](https://code.google.com/p/selenium/issues/detail?id=6055)有關;這是所有瀏覽器或特定瀏覽器/版本的行爲嗎? – Faiz

回答

2

可以確保幾件事情:

  • 你能確保XPath計算,只返回要單擊一個對象。

  • 如果你能夠唯一標識你的對象,那麼你可以嘗試點擊使用下面的建議嗎?

  • 你可以試試這個XPath://輸入[包含(@類, '登錄按鈕')]或 //輸入[包含(@值, 'Accedi')]

  • 如果仍面對這個問題,你可以發佈Selenium 版本和你正在使用的瀏覽器。如果您使用的是Chrome或IE,則 也會指定相同的驅動程序版本。

+0

原因是我的Firefox驅動程序版本與我安裝的Firefox不相對應。 –