硒动态值

时间:2010-08-16 08:21:02

标签: selenium

如何使用selenium脚本捕获按钮的动态值?

3 个答案:

答案 0 :(得分:0)

如果您尝试在动态生成的页面上查找元素,则可以使用XPath或CSS选择器来查找该元素。选择器需要足够通用以捕获动态元素的所有可能性,同时具体到足以与页面上的另一个元素不匹配。这通常最好通过在可能的情况下为按钮分配ID来实现。

如果您指的是使用Selenium检查按钮的内容/属性,那应该相当简单。一旦你有了正确的选择器,你应该能够访问内部HTML(或者你想要的关于该元素的任何其他信息)。

答案 1 :(得分:0)

您可以使用selenium getText和getValue从按钮中提取文本。如果只有按钮文本是动态的,按钮本身是静态的,那么它的位置/ UI定位器也可以轻松获取

答案 2 :(得分:0)

要捕获动态值,我使用的最佳方式是" xpath"。 这背后的原因是,无论何时你想要一个动态元素,你都需要找到该元素的父html路径直到该元素。

示例:

假设我们有一个html源代码:

 <div class="sfibbbc">
        <div id="sbtc" class="sbtc">
            <div class="sbibtd">
                <div id="sfdiv" class="sbibod ">
                    <div class="gstl_0 sbib_a" style="height: 38px;">
                        <div id="gs_st0" class="gsst_b sbib_c" style="line-height: 38px;" dir="ltr">
                            <a class="gsst_a" href="javascript:void(0)" aria-label="Search by image">
                                <span id="gs_si0">
                                    <span id="qbi" class="gsst_e"></span>
                                    </span>
                            </a>
                        </div>

如果我们需要找到{span id =&#34; qbi&#34;类=&#34; gsst_e&#34; /跨度} 并且id是动态的,这意味着每当您登录该页面时它都会被更改。

要实现这一点,我们需要派生xpath,如 - &gt;

// DIV [@id =&#39; gs_st0&#39;] // //一个跨度//跨度[@class =&#39; gsst_e&#39;]

所以每次如果它会生成一个新ID,那么WebDriver也可以通过其父路径找到该元素。