1

我有以下 XML 结构:

<array-list>
<tests>
<test myId="11">Some data</test>
<test myId="22">Some data 2</test>
</tests>
</array-list>

如何存储"myId"列表中第一个元素的属性?

我尝试storeAttribute了使用以下位置参数的命令,但没有成功:

 1. //array-list/tests/test[1]@myId 
 2. xpath=//array-list/tests/test[1]@myId
 3. */test[1]@myId
 4. //array-list/tests/test@myId
 5. //array-list/tests/test[1]/@myId
 6. //array-list/tests/test/@myId

我相信还有其他一些尝试,但它们都没有奏效。请不要说“正确的 XML”。XML 没有任何其他属性。这是从我无法修改的外部服务中检索的。所以唯一的问题是如何从列表中的第一个测试标签中获取**myId**属性

4

2 回答 2

1

如果我说要更正 xml,您将不会高兴,但您必须将 myID 更改为 myid(全部为小)(我仍在寻找原因?)。

我尝试使用给定的 xml

<array-list>
<tests>
<test myid="11">Some data</test>
<test myid="22">Some data 2</test>
</tests>
</array-list>

我试过的代码是

<tr>
<td>storeAttribute</td>
<td>//test[1]/@myid</td>
<td>myVar</td>
</tr>
<tr>
<td>echo</td>
<td>${myVar}</td>
<td></td>
</tr>

它运作良好。

于 2012-11-30T06:12:54.840 回答
0

因此,例如使用 css 选择器假设以下更改:

<array-list>
<tests>
<test id="11">Some data</test>
<test id="22">Some data 2<img src="some attribute"></test>
</tests>
</array-list>

我们可以这样做:

在此处输入图像描述

和html:

<tr>
    <td>storeText</td>
    <td>css=test#11 </td>
    <td>var</td>
</tr>
<tr>
    <td>echo</td>
    <td>${var}</td>
    <td></td>
</tr>
<tr>
    <td>storeAttribute</td>
    <td>css=test#22 &gt; img@src</td>
    <td>img</td>
</tr>
<tr>
    <td>echo</td>
    <td>${img}</td>
    <td></td>
</tr>

和 webdriver python 版本:

    var = driver.find_element_by_css_selector("test#11").text
    print(var)
    img = driver.find_element_by_css_selector("test#22 > img").get_attribute("src")
    print(img)
于 2014-08-27T14:55:16.943 回答