2016-09-07 4 views
2

해당 웹 사이트의 ID 속성에 동일한 접두사가있는 웹 요소가 있습니다. 나는이 모든 원소를 한번에 get webelements; 하나의 명령으로 텍스트 속성을 추출하고 싶습니다.Robot Framework에서 모든 요소의 텍스트 특성을 한꺼번에 가져 오는 방법은 무엇입니까?

${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) 

내가 여기에 문제를 이해할 수 없다; BTW 나는 내 문제에 대한 다른 해결책을 주셔서 감사합니다.

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')}의 경우도 같습니다.

+0

당신이 가까이 있습니다. 시도해보십시오 : $ {rowList} = $ elList에있는 item.text를 평가하십시오. 설명은 http://robotframework.org/robotframework/latest/libraries/BuiltIn.html#Evaluating%20expressions 및 http://seleniumhq.github.io/selenium/docs/api/py/webdriver_remote/selenium.webdriver를 참조하십시오. remote.webelement.html # selenium.webdriver.remote.webelement.WebElement.text – ombre42

답변

1

나는 이것을 풀었다. 나는 this 대답을 발견하고 시도로 ${item.get_attribute('innerHTML')}를 사용했습니다. 그것은 꽤 괜찮 았어.

+1

innerHTML에는 대부분의 사람들이 텍스트를 가져 오려고하면 원치 않는 마크 업이 포함됩니다. – ombre42

+0

@ Zeinab Abbasi 이걸 조사하고 도와 주실 수 있습니까? https://stackoverflow.com/questions/44302081/select-treeview-icon-in-python-using-seleniumwebdriver – Abul

0

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} 
+0

제 대답을 확인하십시오. –

0

당신도 이것을 사용할 수 있습니다. @ 는 {ELEM} = 가져 오기 WebElements CSS = ._ 1vC4OE._2rQ-NK는

:FOR ${item} IN @{elem} 
\ log to console Item: ${item.text}