• 选择下拉列表最大索引值 Select From List By Max Index


    Select是网页表单中较为常见的元素,在Selenium2Library 中也有相应关键字可以操作,比如:

    (1)通过指定索引选择

    Name: Select From List By Index     Arguments: [ locator | *indexes ] 

    Selects `*indexes` from list identified by `locator`

    (2)通过指定文本选择

    Name: Select From List By Label      Arguments: [ locator | *labels ]

    Selects `*labels` from list identified by `locator`

    (3)通过指定value选择

    Name: Select From List By Value      Arguments: [ locator | *values ]

    Selects `*values` from list identified by `locator`

    (4)可以同时选择多项

    Name: Select From List                    Arguments: [ locator | *items ]

    Selects `*items` from list identified by `locator`

    (5)选择所有项

    Name: Select All From List                Arguments: [ locator ]

    Selects all values from multi-select list identified by `id`.

    为了快速操作方便,我们实现一个让Select自动赋最大索引值的方法。为什么是最大索引值而不是最小呢,比如第一个option为"" 或者"请选择",即使选中也是不符合要求的。所以继续看代码:

    第1行:get_list_items获取select 的options集合

    第2行:获取options集合中项的个数,注意此处用'$' 而不是'@'

    第3行:通过计算得到所要的索引值

    第4行:借用Select From List By Index 根据索引选择

    至此,已经实现了想要的功能,但是还比较粗糙。如果options 的长度为0(这种情况是有可能的) ,并且在实际使用过程中发现如果options集合过大会有明显的等待过程,我们来看下get_list_items函数:

    可以看到函数内部引用了_get_select_list_options_get_labels_for_options 

    先看_get_select_list_options

    这里只是一个简单地判断,并返回结果。看来症结应该是在_get_labels_for_options函数了

    一个for 循环,虽然时间复杂度只有O(n)但也会因为options的长度变长而耗时

  • 相关阅读:
    初尝2D骨骼动画编辑工具SPINE,并into Unity3D
    Unity3D优化总结(一)
    ARPG游戏打击感相关的技术简单总结
    总结一下一般游戏中3D模型各种勾边方法遇到的工程性问题
    多次被坑了后,重温设计模式原则
    unity shader序列帧动画代码,顺便吐槽一下unity shader系统
    暗黑三泛光算法研究
    《全民无双》锁链刀光程序生成算法,即U3D——刀光轨迹插件的改进
    Low-level Thinking in High-level Shading Languages
    python实现智能语音天气预报
  • 原文地址:https://www.cnblogs.com/loveok-56/p/4453209.html
Copyright © 2020-2023  润新知