2

属性に同じプレフィックスを持つ Web 要素がいくつかありIDます。get webelementsこれらの要素は;で一度に取得できます。1 つのコマンドでテキスト属性を抽出したい。私はこの行を書きました:

${elList} =     get webelements     xpath=//*[starts-with(@id, '${formName}:${row}')]
${rowList} =    evaluate            [item.get_attribute('text') for item in ${elList}]   selenium

どちらが返されますか:

Evaluating expression '[item.get_attribute('text') for item in [<selenium.webdriver.remote.webelement.WebElement object at 0x7f7b6c5f09d0>, <selenium.webdriver.remote.webelement.WebElement object at 0x7f7b6c5f0990>]]' failed: SyntaxError: invalid syntax (<string>, line 1)

ここの問題が理解できません。ところで、私の問題に対する他の解決策をいただければ幸いです。

EDIT1:以下のコードも試しました:

${elList} =     get webelements     xpath=//*[starts-with(@id, '${formName}:${row}')]
:FOR    ${item}     IN      @{elList}
\   log to console  ${item.get_attribute('text')}

しかし、コンソールには表示されるだけNoneです。についても同様です${item.get_attribute('value')}

4

3 に答える 3

2

私はこれを解決しました。私はこの答えを見つけ${item.get_attribute('innerHTML')}て、試してみました。それはかなりうまくいきました。

于 2016-09-10T06:15:24.793 に答える
1

実際の属性ですかtext、それとも含まれているテキストですか? 属性の場合は、おそらく次の方法を試すことができます。

${count}=  Get Matching Xpath Count  //*[starts-with(@id, '${formName}:${row}')]
${rowList}=  Create List
:FOR  ${i}  IN RANGE  ${count}+1
\  ${text}=  Get Element Attribute  xpath=(//*[starts-with(@id, '${formName}:${row}')])[${i}]@text
\  Append To List  ${rowList}  ${text}
于 2016-09-09T07:25:27.213 に答える