【问题标题】:Select Kendo Dropdown with Selenium IDE使用 Selenium IDE 选择 Kendo 下拉菜单
【发布时间】:2015-10-15 14:46:31
【问题描述】:

我正在使用 Selenium IDE,但无法从 kendo 下拉菜单中选择所需的项目。有人知道如何使用 Selenium IDE 做到这一点吗? (或者在 C# 中,但我暂时无法对其进行测试)。

这是一个网站,它有一个我试图练习的下拉菜单,通过尝试断言其他一些下拉选项,没有运气。 http://derp-bear.herokuapp.com/ui_widgets/kendo_ui_example

<tr>
    <td>open</td>
    <td>http://derp-bear.herokuapp.com/ui_widgets/kendo_ui_example</td>
<td></td>
</tr>
<tr>
    <td>click</td>
    <td>css=span.k-input</td>
    <td></td>
</tr>
<tr>
    <td>assertText</td>
    <td>css=span.k-input</td>
    <td>XL - 7 5/8</td>
</tr>

任何帮助都会很棒!

【问题讨论】:

    标签: selenium kendo-ui selenium-ide


    【解决方案1】:

    这不是传统的select 下拉菜单。所以下拉菜单和选项位于 2 个不同的地方。

    下拉箭头位于以下代码中

    <span class="k-select" unselectable="on">
        <span class="k-icon k-i-arrow-s" unselectable="on">select</span>
    </span>
    

    下拉箭头可以用css选择

    css=span.k-select    
    

    下拉选项位于以下位置。此部分在单击下拉箭头后被激活。

    <ul class="k-list k-reset" unselectable="on" style="overflow: auto;" tabindex="-1" role="listbox" aria-hidden="true" id="size_listbox" aria-live="off">
        <li class="k-item" unselectable="on" role="option" tabindex="-1">S - 6 3/4</li>
        <li class="k-item" unselectable="on" role="option" tabindex="-1">M - 7 1/4</li>
        <li class="k-item k-state-selected k-state-focused" unselectable="on" role="option" tabindex="-1" id="size_option_selected" aria-selected="true">L - 7 1/8</li>
        <li class="k-item" unselectable="on" role="option" tabindex="-1">XL - 7 5/8</li>
    </ul>
    

    可以使用 xpath 选择 4 个下拉选项中的任何一个

    xpath=//li[@class='k-item'][.='L - 7 1/8']
    

    Selenium IDE 代码如下:

    <tr>
        <td>open</td>
        <td>/ui_widgets/kendo_ui_example</td>
        <td></td>
    </tr>
    <tr>
        <td>click</td>
        <td>css=span.k-select</td>
        <td></td>
    </tr>
    <tr>
        <td>pause</td>
        <td>3000</td>
        <td></td>
    </tr>
    <tr>
        <td>click</td>
        <td>xpath=//li[@class='k-item'][.='XL - 7 5/8']</td>
        <td></td>
    </tr>
    <tr>
        <td>pause</td>
        <td>3000</td>
        <td></td>
    </tr>
    <tr>
        <td>assertText</td>
        <td>css=span.k-input</td>
        <td>XL - 7 5/8</td>
    </tr>
    

    使用pause 等待内容加载。

    【讨论】:

    • 完美运行!我很难弄清楚如何仅使用 Selenium UI 来使用剑道。谢谢一百万!
    • 这是对我有用的代码 elmFieldWrapper = WebDriverWait(driver, 60).until(EC.element_to_be_clickable((By.XPATH , xpathWrapper))) ActionChains(driver).move_to_element(elmFieldWrapper)。 click(elmFieldWrapper).perform() time.sleep(1) xpathOption = "//ul[@id='scFieldList_{{sc.seq}}_listbox']//li[contains(@class,'k-item' )][.='" + strValue + "']" elmOption = WebDriverWait(driver, 60).until(EC.presence_of_element_located((By.XPATH , xpathOption))) ActionChains(driver).move_to_element(elmOption).click( elmOption).perform() time.sleep(1)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多