1

我无法从网络表格中获取文本。请参阅下面的屏幕截图,了解我要查找的文本。如何从下面的屏幕截图中获取文本快速应用程序。

我的应用程序的屏幕。

在屏幕截图中,如果我找到了快速应用程序,那么我必须单击该用户的编辑链接。下表的 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

在这里,我可以给出使用 python webdriver 的简单示例。但我不知道如何使用 java 获取文本。见下面的例子

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

答案将显示您在网络表格中选择的内容。

于 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 回答