我无法从网络表中获取文字。请参阅下面的屏幕截图,查看我要查找的文字。如何从下面的屏幕截图中获取文本Quick App。
在屏幕截图中,如果我找到快速应用程序,则必须单击该用户的“编辑”链接。 下表的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);
}
请找到我用过的代码。
答案 0 :(得分: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);
}
答案 1 :(得分:0)
在这里,我可以使用python webdriver给出一个简单的例子。但我不知道如何使用java获取文本。见下面的例子
word=driver_find_element_by_xpath("xpath value which text you need from web table")
print word.text
将显示您在网络表格中选择的答案。
答案 2 :(得分:-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表的事情。