根据条件获取链接文本和元素文本

时间:2018-08-28 01:38:06

标签: python selenium-webdriver robotframework

如果没有“ theme-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"为真。

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

我是新手,所以如果您需要更多信息,请告诉我。谢谢

2 个答案:

答案 0 :(得分:0)

        @{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}

答案 1 :(得分:-1)

我不知道机器人框架,但这是您想要的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)