2013-04-22 141 views
0

我是一個總的硒新手,所以下面的代碼是遠遠不完美(由於它不起作用的事實支持)。我想獲取表中的第一行,並檢查它是否有一個指定的CSS類。Selenium WebDriver - 獲取C#中第一行的表#

到目前爲止,我多次嘗試獲取第一行之後,我一直沒有成功。以下是我已經試過 -


我使用(RemoteWebElement)之所以投這裏是因爲(IWebElement)投不工作。這雖然不起作用。

IWebElement first_row = (RemoteWebElement)((IJavaScriptExecutor) Driver).ExecuteScript("return $('#headTable > tr:visible:first')"); 


下面的行獲取所有可見行的文本。這工作。

IWebElement first_row = Driver.FindElement(By.CssSelector("#headTable")); 


另一個試圖讓第一排。這不起作用

IWebElement first_row = Driver.FindElement(By.CssSelector("#headTable")).FindElement(By.CssSelector("tr:visible:first")); 

我已經從http://docs.seleniumhq.org/docs/03_webdriver.jsp#introducing-the-selenium-webdriver-api-by-example看着例子。但是他們是非常簡單的例子。

任何人都可以看到這裏有什麼問題嗎?另外,如果你有其他網站在C#中有幫助的例子的鏈接,我會很感激。謝謝。

+1

一些功能我不熟悉webdriver的,但它使用jQuery的選擇引擎的,如果它發現jQuery的使用?原生瀏覽器選擇器引擎不支持':visible'或':first',因爲它們不是CSS選擇器。 – BoltClock 2013-04-22 14:40:26

+0

我不知道jQuery選擇器引擎。你能指點我參考一個頁面/例子嗎? – neuDev33 2013-04-22 14:43:33

+0

http://api.jquery.com/category/selectors - 您正在使用的腳本'$('#headTable> tr:visible:first')'是一個jQuery調用,它帶有一個只針對jQuery的選擇器,而不是CSS的一部分。據我所知,WebDriver搭載到瀏覽器的原生CSS選擇器引擎上,但我不確定是否有辦法掛鉤不同的引擎。 – BoltClock 2013-04-22 14:47:09

回答

0

其實,BoltClock是正確的,你正在使用jQuery選擇器到cssSelector中。

WebElement table = Driver.FindElement(By.CssSelector("#headTable")); // you have the table 
list<WebElement> allElements = table.findElements(By.CssSelector("tr[attribute name='visible']")); // you have all row that are visible 

最後,如果你想獲得一排,做allElements.get(0)

重要:

By.CssSelector("tr[attribute name ='visible']")看看,因爲我只是寫[attribute name='visible']因爲我不知道它是如何的寫做進入你的代碼,以便你可以適應。

PS:有大約cssSelector

相關問題