15

編集:私もこれを試しました

 var webElements1 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']//input"))).ToList();

空のテキストを取得します

取得しているリストから ID だけを取得する方法を見つけようとしています。以下はコードと画面の印刷ショットです。

//Text のリストを取得する WebDriver

以下のコードは私に正しい数のレコードを返しますが、それは私に与えるだけですが、私は特定のText後にいTextますIdText

私はこれを試しました:

var webElements1 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']/tbody/tr/td/span"))).ToList();

これ

var webElements2 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']/tbody/tr/td"))).ToList();

この...

var webElements3 = (Driver.FindElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']"))).ToList();

行のすべてのコードは正しいリターンを返しますが、ID はありません。

これが私のページの印刷画面です。

ここに画像の説明を入力

4

3 に答える 3

23

以下のメソッドを使用してすべての要素を取得した後、ループで実行してすべての要素の ID を取得します。

List<WebElement> element = driver.findElements(By.XPath("//*[@id='ctl00_ContentPlaceHolder1_Control1_lstCategory']//input")));

for(WebElement ele:elements)
{

        ele.getAttribute("id");     // for getting id of each element

        ele.getText();              //for getting text of each element

}
于 2012-09-20T16:26:58.190 に答える
0

1)あなたの問題を解決するために私が選択するアプローチのアイデアを共有しようとします:

getElementsByTagName('input');//returns array of elements

2) js executor を使用して要素の属性、特に ID を取得し、getElementsByTagName('input') によって返された配列全体を反復処理し、それらの ID を取得します。//色属性を見つけるために使用したコードのサンプル:

public String jsGetColor(String cssSelector){

    JavascriptExecutor js = (JavascriptExecutor) driver;
    StringBuilder stringBuilder = new StringBuilder();
    stringBuilder.append("var x=$(\'"+css+"\');");
    stringBuilder.append("return x.css('color')");
    String res= (String) js.executeScript(stringBuilder.toString());
    return res;

}

これは、どのように試すことができるかという私の仮定にすぎません。それが何らかの形であなたを助けることを願っています)

于 2012-09-20T20:52:59.683 に答える