0

私は完全なセレンの初心者なので、以下のコードは完璧にはほど遠いです(動作しないという事実によってサポートされています)。テーブルの最初の行を取得し、特定の CSS クラスが割り当てられているかどうかを確認したいと考えています。

最初の行を取得しようと何度も試みた後、これまでのところ失敗しています。これが私が試したことです-


ここで (RemoteWebElement) キャストを使用している理由は、(IWebElement) キャストが機能しないためです。しかし、これはうまくいきません。

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


以下の行は、表示されているすべての行のテキストを取得します。これは機能します。

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


1行目を取得するための別の試み。これは機能しません

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# で役立つ例が掲載されている他のサイトへのリンクがあれば、本当に感謝します。ありがとう。

4

2 に答える 2

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に関するいくつかの仕様があります

于 2013-04-23T07:17:54.897 に答える