Seleniumのテストは初めてです。 Seleniumを使用してcssクラス名を取得したい。 EclipseとJavaを開発に使用しています。
<table >
<tr class="odd"><td>Odd row</td></tr>
<tr class="even"><td>Even row</td></tr>
<tr class="odd"><td>Odd row2</td></tr>
<tr class="even"><td>Even row2</td></tr>
</table>
セレンを使用してクラス名「奇数」または「偶数」を取得する方法はありますか?私
はい、要件にgetAttribute(attributeLocator)
関数を使用できます。
Selenium.getAttribute(//xpath@class);
クラスを知る必要がある要素のXpathを指定します。
ありがとう。
WebElement
から、次のようなgetAttribute
メソッドを使用できます。
element.getAttribute("class")
EclipseやJavaに依存するものは何もありません。実際、ロケーション戦略に関するものです。 cssクラスあり/なしで特定のtr要素にアクセスする場合は、cssロケーターを使用できます。
css=tr:nth(indx_base_0)
クラスのn番目の行
css=tr.odd:nth(indx_base_0)
クラスが奇数の最初の行
css=tr.odd
Xpathを使用:
//tr[index_base_1]
クラスが奇数の最初の行
//tr[@class='odd']
クラスが奇数のn番目の行
//tr[@class='odd'][index_base_1]
ここにいくつかあります 有用な例
コードスニペットのコンテキストで、テーブルの最初の行のクラス「奇数」を取得するとします。
次の手順を実行できます。
(注:-Webページに1つのテーブルがあると仮定)
1- 最初に要素を取得:
WebElement ele = driver.findElement(By.xpath( "// table/tr [1]"));
2- その後、「getAttribute」メソッドを使用して要素の属性「class」を取得:
文字列class_name = ele.getAttribute( "class");
同様に、tableの4行目の属性である「偶数」クラスを取得するには、次のコードを使用できます。
ele = driver.findElement(By.xpath( "// table/tr [4]")); class_name = ele.getAttribute( "class");
CSSが要件であり、追加/差別化要素属性がない場合は、次を試してください(例では、単純なテキストアサーションを使用しました)。
assertEquals(Selenium.getText("css=tr.odd > td"), "Odd row");
assertEquals(Selenium.getText("css=tr.even > td"), "Even row");
assertEquals(Selenium.getText("//tr[3]/td"), "Odd row2");
assertEquals(Selenium.getText("//tr[4]/td"), "Even row2");
C#を使用してSeleniumを使用してCSSクラス名を取得します。
string _className;
IWebElement _ele = _driver.FindElement(By.Xpath("Xpath of Element"));
_className = _ele.GetAttribute("AttributeName Here");