web-dev-qa-db-ja.com

Seleniumを使用してCSSクラス名を取得する方法は?

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>

セレンを使用してクラス名「奇数」または「偶数」を取得する方法はありますか?私

22
maruf571

はい、要件にgetAttribute(attributeLocator)関数を使用できます。

 Selenium.getAttribute(//xpath@class);

クラスを知る必要がある要素のXpathを指定します。

ありがとう。

15
lAH2iV

WebElementから、次のようなgetAttributeメソッドを使用できます。

element.getAttribute("class")
59
Stephen

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]

ここにいくつかあります 有用な例

5
user861594

コードスニペットのコンテキストで、テーブルの最初の行のクラス「奇数」を取得するとします。
次の手順を実行できます。
(注:-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");
5
Subh

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");
1
rs79

C#を使用してSeleniumを使用してCSSクラス名を取得します。

string _className;
IWebElement _ele = _driver.FindElement(By.Xpath("Xpath of Element"));
_className = _ele.GetAttribute("AttributeName Here");
0
Mohseen