Есть отличная удаленная работа для php+codeception+jenkins+allure+docker спецов. 100% remote! Присоединиться к проекту

XMLLibrary не работает Set Element Attribute/Set Element Text


(kom) #1

Не понимаю что сделал не так, взял XML шаблон с доки по XMLLibrary:
http://robotframework.googlecode.com/hg/doc/libraries/XML.html

${XML}	set variable	<example>
  <first id="1">text</first>
  <second id="2">
    <child/>
  </second>
  <third>
    <child>more text</child>
    <second id="child"/>
    <child><grandchild/></child>
  </third>
  <html>
    <p>
      Text with <b>bold</b> and <i>italics</i>.
    </p>
  </html>
</example>

И меняю так как в примере:

Set Element Text	${XML}	new text	xpath=first	
Element Text Should Be	${XML}	new text	xpath=first

но текст не меняется, остается ‘text’ как и было:

FAIL : text != new text

(Дмитрий Жарий) #2

Если заключить кусок кода между тройкой обратных кавычек,

<example>
    <first id="1">text</first>
        <second id="2">
            <child/>
        </second>
    <third>
        <child>more text</child>
        <second id="child"/>
        <child><grandchild/></child>
    </third>
    <html>
        <p>
        Text with <b>bold</b> and <i>italics</i>.
        </p>
        </html>
</example>

А ответа на вопрос я не знаю


(Mykhailo Poliarush) #3

Покажите пожалуйста текст всего теста. Можно скинуть его в https://gist.github.com/

И с помощью python запускаете или с помощью jython?


(kom) #4

Вот весь код:

${XML}	set variable	<example>
  <first id="1">text</first>
  <second id="2">
    <child/>
  </second>
  <third>
    <child>more text</child>
    <second id="child"/>
    <child><grandchild/></child>
  </third>
  <html>
    <p>
      Text with <b>bold</b> and <i>italics</i>.
    </p>
  </html>
</example>	

${text} =	Get Element Text	${XML}	first
Should Be Equal	${text}	text	
Set Element Text	${XML}	text1	xpath=first
${text1} =	Get Element Text	${XML}	first
should not be equal	${text}	${text1}	

@dzhariy: спасибо за ```


(kom) #5

Забыл использовать parse xml:

${root} =	Parse XML	${XML}	
${text} =	Get Element Text	${root}	first
Should Be Equal	${text}	text	
Set Element Text	${root}	text1	xpath=first
${text1} =	Get Element Text	${root}	first
should not be equal	${text}	${text1}	
```
так работает

(Mykhailo Poliarush) #6

чтобы уметь составлять нормально форматированный текст прочтите http://automated-testing.info/faq

ваши посты я подправил, можете посмотреть как выглядит форматирование теперь и как нормально выглядит код