如何验证UI上的Literal文本

时间:2012-07-11 10:24:13

标签: java selenium selenium-firefoxdriver

这是UI的一部分,我有一些像

这样的文字文本
Opportunity Name    Momentum Test (ID=AANA-19KVBE)
Account             Account Internal
Owner               Christopher Braden
Sales Order Region  North America
Locale English      United States
Currency            US Dollar

以上代码如下

<table class="datatable" width="100%">
    <tbody>
    <tr class="oddrow">
        <td>Opportunity Name</td>
        <td class="wrap_content">
            Momentum Test (ID=AANA-19KVBE)
            <br>
            <a target="_blank" href="http://www.example.com">View in Salesforce</a>
        </td>
    </tr>
    <tr class="evenrow">
        <td>Account</td>
        <td class="wrap_content">
            Akamai Internal
            <br>
            <a target="_blank" href="http://www.example.com">View in Salesforce</a>
        </td>
    </tr>
    <tr class="oddrow">
        <td>Owner</td>
        <td>Christopher Braden</td>
    </tr>
    <tr class="evenrow">
        <td>Sales Order Region</td>
        <td>North America</td>
    </tr>
    <tr class="oddrow">
        <td>Locale</td>
        <td>English - United States</td>
    </tr>
    <tr class="evenrow">
        <td>Currency</td>
        <td>US Dollar</td>
    </tr>
</tbody>

我需要单独检索这些值,将其存储起来以便在不同的页面中进行比较。

例如:我需要知道“美国”存储在“位置”

请帮帮我

谢谢&amp;问候 基兰

1 个答案:

答案 0 :(得分:0)

您可以在地图中阅读并存储所有这些信息 -

Map<String,String> map = new Map<String,String>;

List<WebElement> list = driver.findElements(By.xpath("//*[@class='datatable']/tbody/tr")); 

for(int i=1;i<=list.size();i++){

  String key = driver.findElement(By.xpath("//*[@class='datatable']/tbody/tr["+i+"]/td[1]")).getText();
  String value = driver.findElement(By.xpath("//*[@class='datatable']/tbody/tr["+i+"]/td[2]")).getText(); 

   map.put(key,value);
 }

通过这种方式,您可以读取表格中的所有信息并将其存储在Map中以便稍后使用。如果这对您有用,请告诉我。