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 に答える