所以我目前正在使用C#和Selenium在Visual Studio中进行自动化测试。所以我的问题如下。我想从中提取文本的元素是:
<input class="showroomprice pricehistory" type="text" data-showroomprice="100000" value="100.000" data-tooltip="true" data-html="true" data-original-title="<div class="price-history-popup">
<table>
<thead>
<tr>
<th>
Datum
</th>
<th>
Showroom
</th>
</tr>
</thead>
<tr>
<td>
22 feb 2017
</td>
<td>
€ 100.000
</td>
</tr>
<tr>
<td>
27 jul 2016
</td>
<td>
€ 399.999
</td>
</tr>
<tr>
<td>
20 jan 2016
</td>
<td>
€ 333.333
</td>
</tr>
<tr>
<td>
20 jan 2016
</td>
<td>
€ 123
</td>
</tr>
<tr>
<td>
20 jan 2016
</td>
<td>
€ 12.333
</td>
</tr>
</table>
</div>">
现在你可以看到,div和table是输入类的一部分(参见&#34;&gt;在最后一行的div之后)。当我按类showroomprice pricehistory找到元素并尝试获取文本时,我得到一个null值。我也找不到div类的元素。
所以我需要的是,我需要创建一个字符串,其中包含表中记录的所有文本。有什么想法吗?
谢谢!
答案 0 :(得分:0)
编写一个循环来连接所有单元格的文本,示例java代码
import java.util.List;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class WebTableExample
{
public static void main(String[] args)
{
WebDriver driver = new InternetExplorerDriver();
driver.get("test url");
string tableText;
WebElement table_element = driver.findElement(By.id("yourtable id"));
List<WebElement> tr_collection=table_element.findElements(By.xpath("id('testTable')/tbody/tr"));
int row_num,col_num;
row_num=1;
for(WebElement trElement : tr_collection)
{
List<WebElement> td_collection=trElement.findElements(By.xpath("td"));
col_num=1;
for(WebElement tdElement : td_collection)
{
// making all cells text to tableText
tableText = tableText + tdElement.getText();
col_num++;
}
row_num++;
}
}
}