Получить текст ссылки и текст элемента на основе условия - PullRequest
0 голосов
/ 28 августа 2018

Я должен получить текст и ссылку на элемент, если есть тема Ace-cell-card Ace, в противном случае. Ниже приведен пример HTML-кода:

<div class="theme-grid-cell-frame">
    <a href="/t/490">
        <div class="theme-cell">
            <div class="image"></div>
            <div class="theme-cell-overlay deep"></div>
            <h1 class="theme-cell-name"> textqwqw</h1>
            <div class="theme-cell-card Ace"></div>
        </div>
    </a>
</div>
<div class="theme-grid-cell-frame">
    <a href="/o/434">
        <div class="theme-cell">
            <div class="image"></div>
            <div class="theme-cell-overlay deep"></div>
            <h1 class="theme-cell-name"> textegg</h1>
            <div class="theme-cell-card Jack"></div>
        </div>
    </a>
</div>    
<div class="theme-grid-cell-frame">
    <a href="/t/4665">
        <div class="theme-cell">
            <div class="image"></div>
            <div class="theme-cell-overlay deep"></div>
            <h1 class="theme-cell-name"> textdgfh</h1>
            <div class="theme-cell-card Ace"></div>
        </div>
    </a>
</div>
<div class="theme-grid-cell-frame">
    <a href="/o/764">
        <div class="theme-cell">
            <div class="image"></div>
            <div class="theme-cell-overlay deep"></div>
            <h1 class="theme-cell-name"> textgrth</h1>
        </div>
    </a>
</div>

Я могу получить текст элемента, но хочу передать условие class="theme-cell-card Ace" true.

        ${grid}     Set Variable    //div[@class='theme-cell']
        @{elements}    Get Webelements    ${grid}
        :FOR   ${element}    IN    @{elements}
        \        ${text}    Get Text    ${element}

Я новичок, поэтому, пожалуйста, дайте мне знать, если вам нужна дополнительная информация. Спасибо

Ответы [ 2 ]

0 голосов
/ 29 августа 2018
        @{elements}    Get Webelements    //a[.//div[@class='theme-cell-card Ace']]
        :FOR   ${element}    IN    @{elements}
        \        ${text}    Get Text    ${element}
        \        ${link}    SeleniumLibrary.Get Element Attribute    ${element}    attribute=href
        \        Log to console     ${text}
        \        Log to console     ${link}
0 голосов
/ 28 августа 2018

Я не знаю каркас робота, но вам нужен локатор XPath

//a[.//div[@class='theme-cell-card Ace']]

Это даст вам A теги, которые содержат DIV, который имеет нужные классы. Вы можете получить href из этого элемента вместе с содержащимся текстом.

Поскольку ваш вопрос помечен как python, вы можете использовать что-то простое, например

aces = driver.find_elements_by_xpath("//a[.//div[@class='theme-cell-card Ace']]")
for ace in aces
    print(ace.get_attribute("href"))
    print(ace.text)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...