首页 > 其他分享 >selenium之下拉框选择Select

selenium之下拉框选择Select

时间:2023-09-06 18:12:43浏览次数:66  
标签:deselect text selenium ele sleep Select 下拉框 select

  • Select API 知识点
    1. select_by_index() 根据索引选择,0是第一个元素
      select_by_value() 根据value属性的值选择
      select_by_visible_text() 根据可见文本选择;不要写前后的空格

    2. deselect_by_index(index) 取消选择,0是第一个元素
      deselect_by_value(value) 根据value属性的值取消选择
      deselect_by_visible_text(text) 根据可见文本取消选择;不要写前后的空格
      deselect_all() 全部取消选择

  • 案例
    • select.html
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <title>Title</title>
      </head>
      <body>
         <div id="div1">
              <!--  select 下拉框      -->
              <select name="sex" id="gender">
                  <option value=" male"> male</option>
                  <option value="female">female</option>
                  <option value="tailand">tailand</option>
              </select>
              <!--  select标签多选,通过multiple属性      -->
              <select name= “education” id=”education” multiple=”multiple”>
                  <option value=”1”>高中</option>
                  <option value=”2”>大学</option>
                  <option value=”3”>博士</option>
                  <option value=”4”>硕士</option>
              </select>
          </div>
      </body>
      </html>
    • ele_select.py
      # -*- coding: UTF-8 -*-
      import os
      from time import sleep
      
      from selenium.webdriver.support.select import Select
      from selenium import webdriver
      
      driver = webdriver.Chrome('../chromedriver.exe')
      driver.get(os.path.abspath('select.html'))
      
      test_flag = 3
      if test_flag == 1:
          driver.find_element('css selector', '#gender>option:nth-child(2)').click()  # 不用API,可以直接点
      if test_flag == 2:
          ele_select = driver.find_element('css selector', '#gender')
          Select(ele_select).select_by_index(1)  # female
          sleep(2)
          Select(ele_select).select_by_value('tailand')  # tailand
          sleep(2)
          # xpath = ".//option[normalize-space(.) = %s]" % self._escape_string(text) 源码中normalize-space去除首尾空格
          Select(ele_select).select_by_visible_text('male')
      if test_flag == 3:
          ele_select = driver.find_element('css selector', '#”education”')
          Select(ele_select).select_by_index(0)
          sleep(2)
          Select(ele_select).select_by_index(1)
          sleep(2)
          Select(ele_select).deselect_by_index(0)
          Select(ele_select).deselect_all()
          sleep(2)
          # Select(ele_select).deselect_by_value('')
          # sleep(2)
          # Select(ele_select).deselect_by_visible_text('')

      注意:根据可见文本选择时,若元素中含有空格不需要写,因为在源码中normalize-space已去除首尾空格 

TRANSLATE with x English
Arabic Hebrew Polish
Bulgarian Hindi Portuguese
Catalan Hmong Daw Romanian
Chinese Simplified Hungarian Russian
Chinese Traditional Indonesian Slovak
Czech Italian Slovenian
Danish Japanese Spanish
Dutch Klingon Swedish
English Korean Thai
Estonian Latvian Turkish
Finnish Lithuanian Ukrainian
French Malay Urdu
German Maltese Vietnamese
Greek Norwegian Welsh
Haitian Creole Persian  
  TRANSLATE with COPY THE URL BELOW Back EMBED THE SNIPPET BELOW IN YOUR SITE Enable collaborative features and customize widget: Bing Webmaster Portal Back     此页面的语言为英语   翻译为中文(简体)        
  • 中文(简体)
  • 中文(繁体)
  • 丹麦语
  • 乌克兰语
  • 乌尔都语
  • 亚美尼亚语
  • 俄语
  • 保加利亚语
  • 克罗地亚语
  • 冰岛语
  • 加泰罗尼亚语
  • 匈牙利语
  • 卡纳达语
  • 印地语
  • 印尼语
  • 古吉拉特语
  • 哈萨克语
  • 土耳其语
  • 威尔士语
  • 孟加拉语
  • 尼泊尔语
  • 布尔语(南非荷兰语)
  • 希伯来语
  • 希腊语
  • 库尔德语
  • 德语
  • 意大利语
  • 拉脱维亚语
  • 挪威语
  • 捷克语
  • 斯洛伐克语
  • 斯洛文尼亚语
  • 旁遮普语
  • 日语
  • 普什图语
  • 毛利语
  • 法语
  • 波兰语
  • 波斯语
  • 泰卢固语
  • 泰米尔语
  • 泰语
  • 海地克里奥尔语
  • 爱沙尼亚语
  • 瑞典语
  • 立陶宛语
  • 缅甸语
  • 罗马尼亚语
  • 老挝语
  • 芬兰语
  • 英语
  • 荷兰语
  • 萨摩亚语
  • 葡萄牙语
  • 西班牙语
  • 越南语
  • 阿塞拜疆语
  • 阿姆哈拉语
  • 阿尔巴尼亚语
  • 阿拉伯语
  • 韩语
  • 马尔加什语
  • 马拉地语
  • 马拉雅拉姆语
  • 马来语
  • 马耳他语
  • 高棉语
 

标签:deselect,text,selenium,ele,sleep,Select,下拉框,select
From: https://www.cnblogs.com/u-damowang1/p/17683062.html

相关文章

  • [SpringSecurity5.6.2源码分析三]:SpringWebMvcImportSelector
    1、SpringWebMvcImportSelector• SpringSecurity支持在SpringMVC进行参数解析的时候填充参数,支持以下的对象• 通过@AuthenticationPrincipal,获取UserDetails• 通过@CurrentSecurityContext,获取SecurityContext• 通过参数类型为CsrfToken获取CsrfToken• 究其原因是因为Spr......
  • 软件测试|MySQL SELECT语句的详细使用
    简介MySQL是一种广泛使用的开源关系型数据库管理系统,它提供了许多功能强大的SQL查询语句,其中最常用且最重要的是SELECT语句。SELECT语句用于从数据库表中检索数据,并根据给定的条件返回所需的结果集。在本文中,我们将深入探讨MySQLSELECT语句的各个方面,并提供一些示例来说明其用法。......
  • vue3+typescript +uniapp中select标签
    <select:value="state.year"@change="handleSelectChange($event.target)"> <option:value="i"v-for="iinstate.yearrange">{{i}}</option> </select> ts的代码:``相当于v-model<se......
  • Layui-select 下拉框实现拼音全拼匹配/首字母模糊搜索
    Layui中搜索选择框搜索汉字不管用解决方案基于layui2.5.3首先贴上原创作者的文章地址,非常感谢他的思路Layui-select下拉框实现拼音全拼匹配/首字母模糊搜索最近做项目的时候引用了layui并使用了本文作者的方法解决了我得问题,但是由于需要使用layui新版的tree.js,发现不......
  • 软件测试 | Selenium-Grid架构
    Selenium-Grid是基于传统Selenium架构发展起来的,它有如下优点:1.Selenium测试案例、待测Web应用系统、RemoteControl/浏览器组合之间无须紧密耦合。它们之间通过HTTP进行通信,因此不需要工作在一台机器上。2.Selenium测试案例和待测Web应用系统与具体项目相关。不过,无论SeleniumRem......
  • 软件测试 | Selenium-RC工作原理
    我们描述Selenium-RC组件是如何运转的,以及它们在测试案例运行过程中扮演什么角色。1.RC组件Selenium-RC组件包括:SeleniumServer,它负责启动和关闭浏览器,解释和运行从测试程序传来的Selenium命令,就像一个HTTP代理一样。截取和验证浏览器与待测应用(AUT)之间的HTTP消息;客户端库文件提供......
  • 软件测试 | Selenium基础
    Selenium命令——SeleneseSelenium提供一系列命令,可以用你能想到的所有方式全面测试你的Web应用系列。这些命令通常被称为Selenese。这些测试命令事实上构成了一种测试语言。使用Selenese,用户可以通过HTMLtags测试UI元素是否存在,测试特殊文本,测试死链接、输入框、下拉列表、提交表......
  • 软件测试 | Selenium验证页面元素
    验证页面上的UI元素,是你在自动化测试案例过程中最常用到的特性。Selenese允许通过多种方式验证UI元素。了解这些不同验证方式非常重要,因为它们决定了你实际正在测试什么。举例,你是否正在测试如下情况:(1)一个UI元素存在于页面上某个位置;(2)特别稳定存在于页面上某个位置;(3)特定文本存在于......
  • 爬虫配置必备:JQuery|querySelector|Cheerio DOM节点选择干货集
    作者:fbysss前言网页爬取,是一项既费脑子又繁琐的工作。因为网页格式不一,很难完全靠机器自动识别。通常,我们可以采用css选择器来选取DOM节点,从整个网页中抽取我们需要的内容。前端大家最熟悉的应该是JQuery了。如果JQuery不好用,可以直接使用原生的document.querySelectorAll,现在的浏......
  • python+selenium自动化测试
    自动化测试工具selenium使用指南python+selenium环境安装:直接pipinstallselenium 安装webdriver打开/关闭浏览器:importtimefromseleniumimportwebdriverbrowser=webdriver.Edge()browser.get("http://www.baidu.com/")time.sleep(5)browser.get("https://ma......