1

Web テーブルからテキストを取得できません。私が探しているテキストについては、以下のスクリーンショットを参照してください。以下のスクリーン ショットからテキスト クイック アプリを取得する方法。

私のアプリの画面。

スクリーン ショットで、クイック アプリが見つかった場合は、そのユーザーの [編集] リンクをクリックする必要があります。以下の表の xpath カウントのコード:

//table[@id='ctl00_MasterPlaceHolder_GvUsers']/tbody/tr

以下のコードを使用してテキストをキャプチャしようとしました。

text = driver.findElement(By.xpath("//table[@id='ctl00_MasterPlaceHolder_GvUsers'] 
/tbody/tr["+k+"]/td[3]")).getText();
System.out.println(text);

上記のコードを実行した後、Null 値を取得しています。コードを提供して、この問題で私を助けてください。助けていただければ幸いです。

<table id="ctl00_MasterPlaceHolder_GvUsers" class="btext" cellspacing="0" cellpadding="2" border="0" style="color:#333333;width:100%;border-collapse:collapse;"> <tbody> <tr align="left" style="color:White;background-color:#507CD1;font-weight:bold;"> <tr class="text" style="color: rgb(28, 28, 28); background-color: rgb(249, 182, 115); font-weight: normal; height: 10px; text-decoration: none;" onclick="javascript:__doPostBack('ctl00$MasterPlaceHolder$GvUsers','Select$0')" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: White; height: 10px; text-decoration: none;" onclick="javascript:__doPostBack('ctl00$MasterPlaceHolder$GvUsers','Select$1')" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);"> <tr style="background-color: rgb(239, 243, 251); height: 10px; text-decoration: none;" onclick="javascript:__doPostBack('ctl00$MasterPlaceHolder$GvUsers','Select$2')" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);">
<tr style="background-color: White; height: 10px; text-decoration: none;" onclick="javascript:__doPostBack('ctl00$MasterPlaceHolder$GvUsers','Select$3')" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);"> <tr style="background-color: rgb(226, 222, 208); height: 10px; text-decoration: none;" onclick="javascript:__doPostBack('ctl00$MasterPlaceHolder$GvUsers','Select$4')" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);"
<tr style="background-color: White; height: 10px; text-decoration: none;" onclick="javascript:__doPostBack('ctl00$MasterPlaceHolder$GvUsers','Select$5')" onmouseout="javascript:setMouseOutColor(this);" onmouseover="javascript:setMouseOverColor(this);"> <td>7CUser44</td> <td>Swamy m Kumara</td> <td>Quick App</td> <td>QuickApp User</td> <td>Active</td> <td>halcyon2</td> <td>COTTAGE GROVE </td> <td>WI</td> <td> </tr>




   int xpathcount= driver.findElements(By.xpath((OR.getProperty("xpathcount_Users_ID")))).size();
        System.out.println("Number of rows displayed in Site History table: " +xpathcount);
        int k;
        for (k=1;k<=xpathcount;k++)
        {
            Select table = new Select(driver.findElement(By.xpath("//table[@id='ctl00_MasterPlaceHolder_GvUsers']/tbody/tr["+k+"]/td[3]")));
            text1 = table.getFirstSelectedOption().getText();
            System.out.println("Selected User Level is: "+text1);
            Thread.sleep(2000);
            text = driver.findElement(By.xpath("//table[@id='ctl00_MasterPlaceHolder_GvUsers']/tbody/tr["+k+"]/td[3]")).getText();
            System.out.println(text);
        }

私が使用したコードを見つけてください。

4

3 に答える 3

1

ここで、コードを次のように変更して機能しました。私を助けようとしたすべてのメンバーに感謝します。

int xpathcount=     
driver.findElements(By.xpath((OR.getProperty("xpathcount_Users_ID")))).size();
System.out.println("Number of rows displayed in Site History table: " +xpathcount);
int k;
for (k=2;k<=xpathcount;k++)
{
text = driver.findElement(By.xpath("//table[@id='ctl00_MasterPlaceHolder_GvUsers']
   /tbody/tr["+k+"]/td[3]")).getText();
System.out.println(text);
}
于 2013-02-21T11:22:36.733 に答える
0

ここでは、PythonWebdriverを使用した簡単な例を示します。しかし、Javaを使用してテキストを取得する方法がわかりません。以下の例を参照してください

word=driver_find_element_by_xpath("xpath value which text you need from web table")
print word.text

回答は、Webテーブルで選択したものが表示されます。

于 2013-02-20T08:06:32.420 に答える
-1

HTML なしで適切な答えを出すのは難しいですが、ここで役立つことがあります。

public void getEditTable(final WebDriver driver, final By table, final String query) {
    List<WebElement> lines = table.findElements(By.tagName("tr"));

    for (WebElement line : lines) {
        List<WebElement> cols = line.findElements(By.tagName("td"));

        if (cols.get(2).getText().equals(query)) {
            List<WebElement> actions = cols.get(8).findElement(By.tagName("a"));
            actions.get(0).click();
        }

    }

}

ここで指摘しなければならないのは、これにはあなたの側で多くの作業が必要になる可能性が高いことですが、おそらくあなたは主なアイデアを得ることができるでしょう. 会社の CRUD サイトの Web テーブルと同様のことを行います。

于 2013-02-15T15:09:14.827 に答える