2012-12-05 37 views
1

我有用Selenium RC &寫的xpath現在我想在selenium Webdriver中編寫相同的xpath。下面是XPath:使用此XPath我有用Selenium RC編寫的xpath,現在我想在selenium Webdriver中編寫相同的xpath。下面是xpath

"//table[@id='lgnLogin']/tbody/tr/td/table/tbody/tr[4]/td" 

,我捕捉我的應用程序,如「請檢查您的密碼」顯示錯誤消息。

現在我該如何在Webdriver中編寫它。我有不同的方式,但沒有解決。

"String msg= driver.findElement(By.xpath("//*[@td='error2']")).toString();" - 這是我在Webdriver做的。

請幫我在這...

回答

2

XPath並沒有從Selenium RC改爲WebDriver。

如果你能夠使用一些XPath表達式,它也應該在WebDriver中工作(像往常一樣在99%的情況下)。

下面的代碼應該可以正常工作,但如果沒有看到您的HTML,就很難回答。

String msg= driver.findElement(By.xpath("//table[@id='lgnLogin']/tbody/tr/td/table/tbody/tr[4]/td")).getText(); 

//*[@td='error2'] - 這個表達很糟糕,因爲它意味着TD‘和值‘誤差2’「與屬性命名任何元素’我想,你沒有‘TD’屬性在你的HTML

最後,我不推薦使用如你所示的那樣長的XPath表達式,它可能因爲佈局的細微變化而被破壞,最好使用一些特定的屬性而不是長的層次結構。

+0

感謝您的建議,並會盡量按照您的說法使用。其實切換到另一個窗口後,我沒有切換回主窗口,導致這裏的問題。現在我能夠正確地獲取xpath消息並在控制檯上進行填充。這個問題現在可以關閉。 –

0

的一個好辦法,開始將是從基礎開始:http://seleniumhq.org/docs/03_webdriver.html#introducing-the-selenium-webdriver-api-by-example

什麼findElement會做的就是找到你想要與之交互的元素。在找到元素後,您需要執行您想要對元素執行的操作。在你的情況下,你想要元素內的文字。所以你可以看看WebElement接口的適當的功能,並使用適當的方法,在你的情況下,getText。

+0

In webdriver,沒有getText。我們得到&getTitle –

+0

driver.findElement將返回一個webelement而不是webdriver實例。S你應該看看webelement的方法,而不是webdriver的。 –

+0

我已經使用getText作爲你,但我得到相同的錯誤。我無法識別使用此xpath從應用程序顯示的文本。 –