from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait as wwait
from selenium.webdriver.support import expected_conditions as EC def wait_until(bc,locator,type=1): '''bc=driver,类似locator=(By.ID,'kw'),type{1:visible,2:clickable,3:frame switch}''' wait=wwait(bc,10,0.2)
  
  #等待页面元素可见,返回该页面元素
if type==1:
return wait.until(EC.visibility_of_element_located(locator))
  
  #等待页面元素可点击,返回该元素
elif type==2:
return wait.until(EC.element_to_be_clickable(locator))

  #通过定位frame 切换到这个frame
elif type=3:
wait.until(EC.frame_to_be_available_and_switch_to_it(locator))   #切换回最外层 bc.switch_to.default_content()

#下拉框、单选框、文本下拉框的选择操作

from selenium.webdriver import ActionChains as AC
from selenium import webdriver as wd
from selenium.webdriver.support.ui import Select
from selenium.webdriver.common.keys import Keys #找到下拉框
select_element=Select(bc.find_element_by_xpath("//select"))
#下拉框选项的多选
select_element.select_by_index(1)
select_element.select_by_visible_text('荔枝')
select_element.select_by_value('juzi')
#取消选择
select_element.deselect_by_index(1)
select_element.deselect_by_visible_text('荔枝')
select_element.deselect_by_value('juzi')
#文本下拉框
from selenium.webdriver.common.keys import Keys
bc.find_element_by_id('select').send_keys('c')
#箭头向下选
bc.find_element_by_id('select').send_keys(Keys.ARROW_DOWN)
#回车选中
bc.find_element_by_id('select').send_keys(Keys.ENTER)
#操作单选框
berry_redio=bc.find_element_by_xpath("//input[@value='berryradio']")
berry_redio.click()
if berry_redio.selected():
watermelonradio=bc.find_element_by_xpath("//input[@value='watermelonradio']")
watermelonradio.click()
#复选框
先找到复选框
berry_checkbox=bc.find_element_by_xpath("//input[@value='berry']")
berry_checkbox.click()
if berry_checkbox.is_selected():
berry_checkbox.click() #取消选择 check_boxlist=bc.find_elements_by_xpath("//input[@name='fruit']")
for i in check_boxlist:
if not i.is_selected():
i.click()

selenium 显示等待wait.until 常用封装 及下拉框的选择操作等的更多相关文章

  1. Selenium示例集锦--常见元素识别方法、下拉框、文本域及富文本框、鼠标操作、一组元素定位、弹窗、多窗口处理、JS、frame、文件上传和下载

    元素定位及其他操作 0.常见的识别元素的方法是什么? driver.find_element_by_id() driver.find_element_by_name() driver.find_ele ...

  2. 组件 layui 常用控件下拉框的应用

    下拉框的显示样式: 针对下拉框的绑定等操作时,在最后务必调用一次 form.render(); 1.基本定义: <div class="layui-form-item"> ...

  3. Jquery封装:下拉框插件

    代码如下: ;(function ($, window) { $.fn.addSelect = function (options) { //合并传入与默认的参数 var opts = $.exten ...

  4. element-ui中select下拉框,选择后赋值成功,但是框上不显示的坑

    这个是今天遇到一个坑,因为也是第一次使用vue+element-ui开发,所以记录一下自己遇到的一些问题. 这个问题是在开发省市区三级联动组件的时候遇到的,具体的情况如下发的gif图,虽然解决了问题, ...

  5. selenium如何随机选取省份和城市的下拉框的值

    1.原始需求,选择省份后,相应的城市会自动加载 2.思路 a.获取下拉框的所有元素个数 b.随机点击0-元素个数之间的某个值 3.代码实现 Random random = new Random(); ...

  6. selenium 难定位元素,时间插件,下拉框定位,string

    1.元素定位 ID定位元素: findElement(By.id(“”)); 通过元素的名称定位元素: findElement(By.name(“”)); 通过元素的html中的位置定位元素: fin ...

  7. selenium 难定位元素,时间插件,下拉框定位,string包含,定位列表中的一个,技巧

    关于frame: 如果网页存在iframe的话,传统的定位有时候找不到元素,需要切换frame: # 切换到leftFrame定位“测井设计” driver.switch_to_frame(" ...

  8. Selenium常用API用法示例集----下拉框、文本域及富文本框、弹窗、JS、frame、文件上传和下载

    元素识别方法.一组元素定位.鼠标操作.多窗口处理.下拉框.文本域及富文本框.弹窗.JS.frame.文件上传和下载 元素识别方法: driver.find_element_by_id() driver ...

  9. selenium下拉框选择

    下拉框结构如下,我需要选择的是new: html为: <select id="condition_type" name="condition_type" ...

随机推荐

  1. HTML5+CSS3系列教程——如何制作简单按钮笔记

      1.按钮的制作方式 用图片(目前用的不多) 纯CSS a标签 input 图片二决定了input的类型 当input的type属性是submit button等这些的时候他呈现一个按钮 butto ...

  2. 数据结构与算法学习(二)——Master公式及其应用

    本篇文章涉及公式,由于博客园没有很好的支持,建议移步我的CSDN博客和简书进行阅读. 1. Master公式是什么? 我们在解决算法问题时,经常会用到递归.递归在较难理解的同时,其算法的复杂度也不是很 ...

  3. java中实现在线人数统计

    //java 代码public class SessionCounter implements HttpSessionListener { private static int activeSessi ...

  4. Hbuider APP打包流程

      1,下载HBuilder,注册并登陆.首先打开“文件”-“新建”-“移动APP”,输入“应用名称”,“位置”可以根据需要自己选择即可,“选择模板”建议选择空模板: 2,新建完成后, 在项目管理器会 ...

  5. 【LOJ】#2720. 「NOI2018」你的名字

    题解 把S串建一个后缀自动机 用一个可持久化权值线段树维护每个节点的right集合是哪些节点 求本质不同的子串我们就是要求T串中以每个点为结束点的串有多少在\(S[l..r]\)中出现过 首先我们需要 ...

  6. (十二)Sun公司的Jstl标签库详细介绍

    JSP 本身提供的标签很少,不能满足我们日常开发需要,好在 Sun 公司自己提供了一套标签库: JSTL标签库快速入门(可点击) 目录 < c : out > 标签 < c : se ...

  7. java的简单工厂模式

    目录 代码讲解 UML图解简单工厂 优点 缺点: 改进: 代码讲解 产品功能接口: /** * 定义接口,抽象出产品都具有的功能 */ interface Produce { void method( ...

  8. PHP切割整数工具,类似微信红包金额分配

    Composer地址:https://packagist.org/packages/werbenhu/php-number-slicing GitHub地址:https://github.com/we ...

  9. 【规律】Parentheses

    Parentheses 题目描述 Dave loves strings consisting only of '(' and ')'. Especially, he is interested in ...

  10. 如何查看浏览器保存的密码——通过js代码的方式

    打开网站,在密码输入框内鼠标右击,选择“审查元素”(或者按F12),浏览器底部弹出网页的代码,并自动定位到密码框的代码段. 1. 第一种方法 选中元素后,直接在 Console 控制台中输入以下命令( ...