Как перебрать WebElements и получить новый WebElement в Robot Framework - PullRequest
0 голосов
/ 27 марта 2020

Я пытаюсь получить атрибут href из списка html, используя Robot Framework keywords. Например, предположим, что html код

<ul class="my-list">
<li class="my-listitem"><a href="...">...</li>
...
<li class="my-listitem"><a href="...">...</li>
</ul>

Я пытался использовать ключевые слова WebElement, WebElements и for loop безуспешно. Как я могу это сделать?

Это мой MWE

*** Test Cases ***
@{a tags} =  Create List
@{href attr} = Create List
@{li items} = Get WebElements    class:my-listitem

FOR ${li}  IN  @{li items}
    ${a tag} =  Get WebElement    tag:a
    Append To List    @{a tags}    ${a tag}
END

FOR ${a tag}  IN  @{a tags}
    ${attr} =  Get Element Attribute    css:my-listitem   href
    Append To List    @{href attr}    ${attr}
END

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 27 марта 2020

href является атрибутом элементов a, а не li, поэтому вам нужно нацелиться на них. Получить ссылку для всех таких элементов, а затем получить их href в l oop:

${the a-s}=     Get WebElements    xpath=//li[@class='my-listitem']/a    # by targeting the correct element, the list is a reference to all such "a" elements
${all href}=    Create List
FOR    ${el}    IN    @{the a-s}   # loop over each of them
    ${value}=     Get Element Attribute    ${el}    href   # get the individual href
    Append To List    ${all href}  ${value}   # and store it in a result list
END
Log To Console    ${all href}

0 голосов
/ 27 марта 2020

Вот возможное решение (не проверено):

@{my_list}=    Get WebElements    xpath=//li[@class='my-listitem']
FOR    ${element}    IN    @{my_list}
    ${attr}=    Get Element Attribute    ${element}    href
    Log    ${attr}    html=True
END
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...