无法使用Selenium IDE存储属性

时间:2012-11-30 00:12:37

标签: selenium selenium-ide

我有以下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**属性

2 个答案:

答案 0 :(得分: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>

并且运作良好。

答案 1 :(得分: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>

我们可以这样做:

enter image description here

和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)