从输入类

时间:2017-02-22 13:19:05

标签: c# selenium

所以我目前正在使用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=&quot;price-history-popup&quot;>
<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类的元素。

所以我需要的是,我需要创建一个字符串,其中包含表中记录的所有文本。有什么想法吗?

谢谢!

1 个答案:

答案 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++;
        } 
    }
}