当前位置: 首页 > 知识库问答 >
问题:

如何通过Selenium获取ExtJS组合框的选定值?

羊舌阎宝
2023-03-14

我有一个网页渲染使用extjs。它用一些生成的ID呈现多个组合框。和每个组合框都选择了不同的选项。我怎样才能找出在每个组合中选择了哪个值?

在调试HTML DOM时,我观察到ExtJS呈现DIV是不同的,可选择的选项在最后呈现在不同的DIV中。因此,我无法定义任何XPath来找出所选值。

<div class="guide-bg" id="sample"><table>
    <tr><td id="row1"> </td></tr>
    <tr><td id="row2"></td></tr>
</table></div>

<script>
Ext.namespace('Ext.exampledata');
Ext.exampledata.states = [['Alabama'],[ 'Alaska'],['Arizona']];

var store1 = new Ext.data.SimpleStore({
    fields: [ 'state'],
    data : Ext.exampledata.states
});

var combo1 = new Ext.form.ComboBox({
        store: store1, displayField:'state', typeAhead: true,
        mode: 'local', forceSelection: true, triggerAction: 'all',
        emptyText:'Select...', selectOnFocus:true, renderTo: 'row1'
});

var combo2 = new Ext.form.ComboBox({
        store: store1, displayField:'state', typeAhead: true,
        mode: 'local', forceSelection: true, triggerAction: 'all',
        emptyText:'Select...', selectOnFocus:true, renderTo: 'row2'
});
</script>
<div class="guide-bg" id="sample">
  <table>
    <tbody><tr><td id="row1"> 
    <div class="x-form-field-wrap x-form-field-trigger-wrap" id="ext-gen148" style="width: 206px;">
        <input type="text" name="ext-comp-1028" id="ext-comp-1028" autocomplete="off" size="24" class="x-form-text x-form-field x-form-empty-field" style="width: 181px;">
        <img class="x-form-trigger x-form-arrow-trigger" src="sp.gif" id="ext-gen149">
    </div></td></tr>
    <tr><td id="row2">
    <div class="x-form-field-wrap x-form-field-trigger-wrap" id="ext-gen150" style="width: 206px;">
        <input type="text" name="ext-comp-1029" id="ext-comp-1029" autocomplete="off" size="24" class="x-form-text x-form-field x-form-empty-field" style="width: 181px;">
        <img class="x-form-trigger x-form-arrow-trigger" src="sp.gif" id="ext-gen151">
    </div></td></tr>
  </tbody></table>
</div>  
<div class="x-layer x-combo-list " id="ext-gen146" style="position: absolute; z-index: 12005; visibility: hidden; 
    left: -10000px; top: -10000px; width: 204px; height: 129px; font-size: 12px;">
    <div class="x-combo-list-inner" id="ext-gen147" style="width: 204px; height: 129px;">
        <div class="x-combo-list-item x-combo-selected">Alabama</div>
        <div class="x-combo-list-item">Alaska</div>
        <div class="x-combo-list-item">Arizona</div>
    </div>
</div>

共有1个答案

归誉
2023-03-14

使用selenium的Eexecute JS(如何将JavaScript与selenium WebDriver Java一起使用)。在js中,您可以使用“ext.componentQuery.query('combo')[0].value”代码获取combo值

 类似资料:
  • 假设我有以下html代码: 这是一个组合框 当前已选择值MyDivision。 使用Selenium WebDriver我试图获得选定的值,但没有成功。 我尝试了: 但这会返回组合框中的所有值。 请帮忙? 编辑:

  • Ext-js为Grid store内置了一个名为filter的函数,该函数用组合框中的选定值过滤网格结果。 我想要反过来。它应过滤除所选数据之外的网格数据。 示例:默认情况下,首先选中“全部”复选框。当我取消选中任何复选框时,网格应该显示除所选复选框之外的数据。 请查找筛选选项的屏幕截图 下面是我尝试过的代码,但是它确实过滤了选中复选框的网格。 如果有人对此有任何建议,请告诉我。

  • 问题内容: 我使用Tkinter在python中制作了一个简单的组合框,我想检索用户选择的值。搜索后,我认为可以通过绑定选择事件并调用将使用box.get()之类的函数来实现此目的,但这不起作用。程序启动时,将自动调用该方法,并且不打印当前选择。当我从组合框中选择任何项目时,不会调用任何方法。这是我的代码片段: 当我从框中选择一个项目时,应该调用此方法: 谁能告诉我如何获得选定的值? 编辑:我通过

  • 问题内容: 我想在extjs中级联组合框。我必须要组合框 课程组合框 课程模块: 休息服务 当我运行应用程序并选择第一个组合框时,它仅在第二时间在第二个组合框中显示正确的值。 但是,当我第二次选择组合框时,它不在第二个组合框中显示值。 问题答案: 您似乎想清除已应用的过滤器。要删除已应用的过滤器,商店中提供了clearFilter()方法。您可以将其混合到您的代码中,如下所示:

  • 我使用Saxon CE和XSLT 2.0在页面上生成和操作控件。生成组合框不是问题,但当我更改组合框时,似乎无法从组合框的选项条目中获取值。下面是示例性XSLT代码: 我想做的是当用户更改组合框的值时,他们选择的选项的值存储在变量$myVal中。然后我使用该变量来影响主页上的转换。现在我拥有的根本不起作用(目前它获取所有选项的所有值,而不是用户选择的那个)。 思想?

  • 问题内容: 我有一个带有属性的元素。如何使用JavaScript获取此元素的选定值? 这是我正在尝试的: 问题答案: 没有jQuery: 快速示例: