我正在测试一个Web应用程序,我输入一个关键字,然后以HTML表的形式获得结果 我想从这个表中提取一些文本并将其存储到一个列表中,以便稍后与另一个列表进行比较:
以下是我启动搜索的代码,我将表存储在列表中:
@Parameters({"keyword" , })
@Test
private void srch(String keyword ) throws JsonParseException, JsonMappingException, MalformedURLException, IOException {
driver.get(TestURL);
WebElement input1 = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/input[1]"));
input1.sendKeys("guest");
WebElement input2 = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/input[2]"));
input2.sendKeys("guest");
WebElement btn = driver.findElement(By.xpath("html/body/div[1]/div/div[2]/div/form/button"));
btn.click();
WebElement w1 = driver.findElement(By.xpath("html/body/header/nav/div[1]/form/div/input"));
w1.sendKeys(keyword);
WebElement w2 = driver.findElement(By.xpath("(//button[@type='button'])[2]"));
w2.click();
List<WebElement> resultsDiv = driver.findElements(By.xpath("html/body/div[1]/div[2]/div/div/div[1]/table"));
System.out.println(resultsDiv.size());
for (int i=0; i<resultsDiv.size(); i++) {
System.out.println(i+1 + ". " + resultsDiv.get(i).getText());
}
}
我正在添加system.out.println以查看我从表中获得的内容。
这是我的表结构:
HTML code:
<table class="table table-striped table-hover table-condensed table-bordered">
<tbody>
<!-- ngRepeat: object in objects -->
<tr class="ng-scope" ng-repeat="object in objects">
<td>
<a target="_blank" href="#/en/object/TASK|TSK(IAM720JUA5)(000)|BIST_CE891">
<b class="ng-binding">TSK(IAM720JUA5)(000)</b>
</a>
<p style="font-size:11px;">
</td>
</tr>
实际网络显示
TSK(IAM720JUA5)(000)
JOB IAM720JUA5 | 000Chargement des OR CE891 PSIEP23P Flux 5 地点:BIST_CE891 名称:TSK
我想得的只是TSK(IAM720JUA5)(000)部分。
但是我当前的代码显示:
1 1。 1 1。 1 1。 1 1。 1 1。 1 1. TSK(ARS090J)(000)(ARS090JN30)(000)
WORKFLOW ARS090J | 000 Arret et redemarrage des services WEB /
位置:RARS_APP02 名称:TSK 1 1。 1 1。 1 1。 1 1. TSK(Z63700J)(000)(Z63700JU10)(000)
工作流程Z63700J | 000 Lancement rebonds CFT Z63
地点:RZ63_ECH01 名称:TSK 1 1。 1 1。 1 1。 1 1。 1 1。 1 1。 1 1。 1 1。 1 1.
我知道我必须更改循环内的代码,但不知道如何继续。
由于
答案 0 :(得分:0)
我终于明白了:
@Test
private void srch() throws MalformedURLException, IOException {
driver.get(TestURL);
WebElement input1 = driver.findElement(By.id("login_form_user_input"));
input1.sendKeys("guest");
WebElement input2 = driver.findElement(By.id("login_form_password_input"));
input2.sendKeys("guest");
WebElement btn = driver.findElement(By.id("login_form_signin_button"));
btn.click();
WebElement w1 = driver.findElement(By.id("header_search_text_field"));
w1.sendKeys("tsk");
WebElement srch = driver.findElement(By.id("header_search_button"));
srch.click();
WebDriverWait wait= new WebDriverWait(driver,20 );
wait.until(ExpectedConditions.visibilityOfElementLocated(By.tagName("td")));
WebElement table = driver.findElement(By.id("search_results_table"));
List <WebElement> rst = table.findElements(By.tagName("b"));
for (int i=0 ; i< rst.size(); i++)
{
System.out.println(rst.get(i).getText());
}
}