Selenium—选择框的相关操作(单选框、多选框、复选框、下拉框)

编辑框

  • 无缺省值:第二个输入框
    • 可直接对输入框进行编辑:

      • driver.find_element_by_id(‘input2‘).send_keys(‘selenium‘)

  • 有缺省值:第一个输入框,默认 test

    • 此时,如果我们直接对第一个输入框进行编辑,会发现与预期结果不符

      • driver.find_element_by_id(‘input1‘).send_keys(‘selenium‘)

    • 因此,如果需要对存在默认值的输入框进行编辑,则需先进行清楚操作,然后再进行编辑

      • driver.find_element_by_id(‘input1‘).clear()
      • driver.find_element_by_id(‘input1‘).send_keys(‘selenium‘)

单选框

  • 单选框,一般会默认选中其中一个
  • 点选时,有且只能选中一个,所以再进行操作时,无需判断是否存在默认值
  • 示例:选择女性
    • driver.find_element_by_css_selector(‘input[value="female"]‘).click()

多选框(勾选框)

  • 如果选中某一项,点击该项,会取消选中
  • 如果该项未被选中,点击该项,会被选中
  • 示例:两项均选中
    • 先查看元素

    • 我们会发现默认选中的,会存在一个 checked 的属性
    • 因此我们可以想到一个思路
      • 将默认选中的点选,即取消选中

        • driver.find_element_by_xpath(‘//*[@name="course"][@checked]‘).click()
      • 然后勾选我们想要的元素

        • driver.find_element_by_css_selector(‘input[value=python]‘).click()
        • driver.find_element_by_css_selector(‘input[value=selenium]‘).click()

复选框

  • 点击某项,即可选中某一项,不会多选
  • 已选中的再次点击该项,不会取消选中
  • 按住 键盘 CTRL 键 ,可实现多选
  • 若实现对复选框的操作,需要导入 Select类:from selenium.webdriver.support.ui import Select
  • 复选框内的元素选择有 3 种
    1. select.select_by_visible_text()
    2. select.select_by_value()
    3. select.select_by_index()
  • 示例:选中 玛莎拉蒂 、兰博基尼 和 法拉利
from selenium import webdriver
# 导入 Select
from selenium.webdriver.support.ui import Select

driver = webdriver.Chrome()

# 打开网址;地址需要修改
driver.get(‘file:///C:/Users/wss/Desktop/test.html‘)

# 获得相应的WebElement
select = Select(driver.find_element_by_id("select"))

# 先取消选择所有的选项
select.deselect_all()

# 通过文本选中 玛莎拉蒂
select.select_by_visible_text("玛莎拉蒂")

# 通过 value 值选中 兰博基尼
select.select_by_value("Lamborghini")

# 通过 index 选择元素,索引从0开始
select.select_by_index(2)

driver.quit()

下拉框

  • 下拉框与复选框一致,均需要导入Select类:from selenium.webdriver.support.ui import Select
  • 下拉框为单选,不需要清除默认
  • 示例:选择 男
    1. select = Select(driver.find_element_by_id("selectdemo"))
    2. select.select_by_visible_text("男")

HTML Demo源码

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>定位网页元素练习</title>

</head>

<body>

    <p>输入框测试</p>
    <div style="color:#0000FF">
        <input id="input1" value="test">
        <br><br>
        <textarea id="input2"></textarea>
    </div>

    <hr>

    <p>单选框测试</p>
    <div>
        <input type="radio" name="gender" value="male" checked="checked"> 男<br>
        <input type="radio" name="gender" value="female"> 女<br>
    </div>

    <hr>

    <p>多选框测试</p>
    <div>
        <input type="checkbox" name="course" value="python" >
        Python基础
        <br>
        <input type="checkbox" name="course" value="selenium" checked>
        Selenium自动化
    </div>

    <hr>

    <p>复选框测试</p>
    <select id="select" multiple>
        <option value="Maserati">玛莎拉蒂</option>
        <option value="Lamborghini">兰博基尼</option>
        <option value="Ferrari" selected="selected">法拉利</option>
        <option value="Porsche">保时捷</option>
    </select>

    <hr>

    <p>下拉框测试</p>
    <select  id="selectdemo">
        <option value="male">男</option>
        <option value="female" selected="selected">女</option>
    </select>

</body>
</html>

原文地址:https://www.cnblogs.com/wilson-5133/p/10940341.html

时间: 2024-11-06 12:13:30

Selenium—选择框的相关操作(单选框、多选框、复选框、下拉框)的相关文章

Selenium 下拉框处理

我们在操作网页时,经常会碰到下拉框,比如百度的搜索设置 有多种方法可以对下拉框中的元素进行选择 一.间接选择 先定位到下拉框,再定位其中的选项 代码: # coding = utf-8 from selenium import webdriver from selenium.webdriver.common.action_chains import ActionChains from time import sleep # 驱动文件路径 driverfile_path = r'D:\coship

C#中的ComboBox实现只能选择不能输入,且下拉框中有默认值。

下拉框有DropDownStyle这一属性,把DropDownStyle类型选为DropDownList,则下拉框只能选择不能输入了.但是这时的下拉框是没有默认值的,即使在Text属性中输入默认值,也不起作用.就要在(某某某.Designer.cs)文件中修改.这是没有修改的:this.NameTemplateBox.Cursor = System.Windows.Forms.Cursors.Default; this.NameTemplateBox.DropDownStyle = System

JS/JQuery操作select下拉框

一.js 操作select 下拉框 var selObj = 下拉框对象 1. 移除所有项:selObj.options.length = 0; 2. 移除下拉框中的一项:selObj.options.remove(index); “index”为下拉框选项的索引值,若0索引项移出(自上而下),那么1索引项的索引会变为0,后面的索引依次向前推进 也可利用循环,移除所有项: var length = selObj.options.length; for(var i=length-1;i>=0;i-

selenium-webdriver(python) (十) 如何处理下拉框

本节重点 处理下拉框 switch_to_alert() accept() 下拉框是我们最常见的一种页面元素,对于一般的元素,我们只需要一次就定位,但下拉框里的内容需要进行两次定位,先定位到下拉框,再定位到下拉框内里的选项. drop_down.html <html> <body> <select id="ShippingMethod" onchange="updateShipping(options[selectedIndex]);"

web自动化 下拉框、切换到新窗口

一.下拉框 相信大家在手动测试web页面时,遇到过下拉框吧,那进行web自动化测试时,如何操作下拉框,且看下文 1.selenium中提供了方法,先导入Select方法 from selenium.webdriver.support.select import Select 2.实例化类 Select(driver.find_element_by_name('选项名')) 3.选择值,可以根据下标.option value.文本内容来选择值 select.select_by_index(1)#根

ligerui多选动态下拉框

今天下午要求做一个支持多选的,并且插件用ligerui的,当时有点小懵了,因为没用过ligerui啊!而且按照API的介绍,我做得也很好啊,可是为什么就是显示不出来?据说有位小神比较厉害,请教来之,两个点过去了,依然无果................... 好吧,切入正题,首先要做一个ligerui的下拉框,必须在页面加载的时候就初始化一个下拉框来,要不你叫你妈来都不好使!(好吧,是我不会看API!) 先说说我现在的需求,我需要做一个类似于二级联动,有两个下拉框,一个是房屋类型,一个是房屋格局

封装下拉框控件!将查询到信息塞到下拉框中,将所选的内容截取并显示到静态框(联动显示)

1 int CSetOrgan::GetAllArea(CString& operArea) 2 { 3 CString strTemp; 4 for(int i=0; i<m_cmbDept.GetCount(); i++) 5 { 6 m_cmbDept.DeleteString(i); 7 } 8 this->PrepareReqPack(TX_QUERYORGAN); 9 AddField((getUIData().getUserId()), sorder0, F_SORDER

jquery级联下拉框

$(document).ready(function(){     //找到三个下拉框     var carnameSelect = $(".carname").children("select");     var cartypeSelect = $(".cartype").children("select");     var wheeltypeSelect = $(".wheeltype").chi

第二百二十四节,jQuery EasyUI,ComboGrid(数据表格下拉框)组件

jQuery EasyUI,ComboGrid(数据表格下拉框)组件 学习要点: 1.加载方式 2.属性列表 3.方法列表 本节课重点了解 EasyUI 中 ComboGrid(数据表格下拉框)组件的使用方法,这个组件 依赖于 Combo(自定义下拉框)和 DataGrid(数据表格)组件. 一.加载方式 class 加载方式 <select id="box" class="easyui-combogrid" name="dept" sty

android中自定义下拉框(转)

android自带的下拉框好用不?我觉得有时候好用,有时候难有,项目规定这样的效果,自带的控件实现不了,那么只有我们自己来老老实实滴写一个新的了,其实最基本的下拉框就像一些资料填写时,点击的时候出现在编辑框的下面,然后又很多选项的下拉框,可是我在网上找了一下,没有这种下拉框额,就自己写了一个,看效果图先: ,这个是资料填写的一部分界面,三个下拉框,选择故乡所在地: 点击之后弹出下拉框,选择下面的选项: 三个下拉框时关联的,第一个决定了第二数据内容,第二个决定了第三个数据内容,如果三个全部选好之后