ListBox的操作

   主要实现功能是将ListBox1中的选择项移动到ListBox2中:
  
 1None.giffunction moveOption(e1, e2,type)
 2ExpandedBlockStart.gifContractedBlock.gif                dot.gif{
 3InBlock.gif                    if( type == 'part' )
 4ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
 5InBlock.gif                        for(var i=0;i<e1.options.length;i++)
 6ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
 7InBlock.gif                            if(e1.options[i].selected)
 8ExpandedSubBlockStart.gifContractedSubBlock.gif                            dot.gif{
 9InBlock.gif                                var e = e1.options[i];
10InBlock.gif                                e2.options.add(new Option(e.text, e.value));
11InBlock.gif                                e1.remove(i);
12InBlock.gif                                i=i-1
13ExpandedSubBlockEnd.gif                            }

14ExpandedSubBlockEnd.gif                        }

15ExpandedSubBlockEnd.gif                    }

16InBlock.gif                    
17InBlock.gif                    if( type == 'all' )
18ExpandedSubBlockStart.gifContractedSubBlock.gif                    dot.gif{
19InBlock.gif                        for(var i=0;i<e1.options.length;i++)
20ExpandedSubBlockStart.gifContractedSubBlock.gif                        dot.gif{
21InBlock.gif                            var e = e1.options[i];
22InBlock.gif                            e2.options.add(new Option(e.text, e.value));
23InBlock.gif                            e1.remove(i);
24InBlock.gif                            i=i-1
25ExpandedSubBlockEnd.gif                        }

26ExpandedSubBlockEnd.gif                    }

27InBlock.gif                    document.all.HiddenprjA.value = getvalue( document.all.lbprjnameA );
28InBlock.gif                    document.all.HiddenprjB.value = getvalue( document.all.lbprjnameB );
29ExpandedBlockEnd.gif                }

30None.gif                
31ExpandedBlockStart.gifContractedBlock.gif                function getvalue(listContrl)dot.gif{
32InBlock.gif                var allvalue = "";
33ExpandedSubBlockStart.gifContractedSubBlock.gif                for(var i=0;i<listContrl.options.length;i++)dot.gif{
34InBlock.gif                allvalue +=listContrl.options[i].value + ",";
35ExpandedSubBlockEnd.gif                }

36InBlock.gif                return allvalue;
37ExpandedBlockEnd.gif                }
   说明:e1,e2分别是ListBox1和ListBox2,type指的是是否全部移动,当然,要保存到数据库中还是需要在后台写一部分代码的。

转载于:https://www.cnblogs.com/oldhorse/archive/2006/07/08/445940.html

### 使用 Selenium 操作 ListBox 示例 对于多选列表框(`<select multiple>`),可以利用 `Select` 类来处理选项的选择。下面是一个完整的 Python 脚本,展示了如何使用 Selenium 来操作 HTML 中的 `<select multiple>` 元素。 #### 初始化 WebDriver 和定位 Select 元素 为了与网页交互,首先需要初始化 WebDriver 实例并导航到目标页面: ```python from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.support.ui import Select # 创建一个新的浏览器实例 (这里以 Chrome 为例) driver = webdriver.Chrome() try: # 打开包含 listbox 的测试页面 driver.get("http://example.com") # 替换为目标 URL # 显式等待直到找到 select 元素变得可见 wait = WebDriverWait(driver, 10) element = wait.until(EC.presence_of_element_located((By.CSS_SELECTOR, "select[multiple]"))) except Exception as e: print(f"Error occurred: {e}") finally: pass ``` #### 获取 Option 列表 并选择特定项 一旦找到了对应的 `<select>` 元素,则可以通过创建 `Select` 对象来进行进一步的操作,比如获取所有的选项或将某些选项设置为已选状态: ```python # 将 WebElement 包装成 Select 对象以便于后续操作 select_box = Select(element) # 取得所有 option 标签作为 WebElements 集合 options = select_box.options # 这里对应了 List<WebElement> options = select.getOptions() [^1] for opt in options: print(opt.text) # 输出每一个选项的文字描述 # 基于 visible text 或者 value 属性值选取单个/多个条目 select_box.select_by_visible_text('Red') select_box.select_by_value('green') ``` #### 添加空格触发下拉显示更多选项 如果遇到一些特殊的场景,例如点击输入框后才会展现出更多的可选项,在这种情况下可能需要用到 JavaScript 注入的方式模拟用户的实际行为,如下所示: ```python input_element = driver.find_element(By.TAG_NAME, 'input') # 向输入框内追加一个空白字符从而激活自动完成建议列表 driver.execute_script("arguments[0].value += ' ';", input_element) # 发送自定义事件通知 DOM 更新视图结构 driver.execute_script(""" var event = new Event('input', {'bubbles':true}); arguments[0].dispatchEvent(event); """, input_element) # 此部分逻辑来源于给定代码片段 [^2] ``` 请注意上述例子中的 `"http://example.com"` 应替换为你正在工作的具体网址;另外,由于不同网站的设计差异较大,因此具体的元素路径可能会有所不同,请根据实际情况调整 CSS Selector 或 XPath 表达式的匹配规则。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值