1、一般情况下都是先定位元素在选择

from selenium.webdriver import Chrome
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ECdriver = Chrome()driver.get('http://www.baidu.com')setting_ele_xpath = '//a[@name="tj_settingicon" and @href="http://www.baidu.com/gaoji/preferences.html"]'wait = WebDriverWait(driver, 20)
e = wait.until(EC.visibility_of_element_located((By.XPATH, setting_ele_xpath)))
driver.find_element_by_xpath(setting_ele_xpath).click()locator = (By.XPATH, "//a[contains(text(), '高级搜索')]")
WebDriverWait(driver, 30).until(EC.element_to_be_clickable(locator)).click()# 通常先去定位selector,再去定位option
# wait = WebDriverWait(driver, 20)
# my_selector = wait.until(EC.element_to_be_clickable((By.NAME, 'ft')))
# my_selector.click()# 在源代码中已经加载出来了,可以直接去点击
wait = WebDriverWait(driver, 20)
my_option = wait.until(EC.element_to_be_clickable((By.XPATH, '//option[@value="ppt"]')))
my_option.click()

2、使用selector选择器

from selenium.webdriver import Chrome
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.support.select import Select
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as ECdriver = Chrome()driver.get('http://www.baidu.com')def wait_clicl_element(driver, locator):wait = WebDriverWait(driver, 20)return wait.until(EC.element_to_be_clickable(locator))setting_ele_xpath = '//a[@name="tj_settingicon" and @href="http://www.baidu.com/gaoji/preferences.html"]'wait = WebDriverWait(driver, 20)
e = wait.until(EC.visibility_of_element_located((By.XPATH, setting_ele_xpath)))
driver.find_element_by_xpath(setting_ele_xpath).click()locator = (By.XPATH, "//a[contains(text(), '高级搜索')]")
WebDriverWait(driver, 30).until(EC.element_to_be_clickable(locator)).click()wait = WebDriverWait(driver, 20)
my_selector = wait.until(EC.element_to_be_clickable((By.NAME, 'ft')))
my_selector.click()# select选择有3种方法:索引值、value值、文本,点进源码去看
selector_obj = Select(my_selector)
selector_obj.select_by_value('pdf')
# 取消 selector_obj.deselect_by_value()print(selector_obj.options)
print(selector_obj.first_selected_option)

  

转载于:https://www.cnblogs.com/qyh0902/p/11223216.html

Web自动化测试 六 ----- selector选择相关推荐

  1. Web自动化测试工具选择

    目标 1. 了解Web自动化测试常用工具 2. 熟悉Selenium的特点 1. 主流的Web自动化测试工具 1. QTP QTP是一个商业化的功能测试工具,收费,支持web,桌面自动化测试. 2. ...

  2. Web自动化测试02

    Web自动化测试课程 第2章-Selenium-API操作 元素定位 元素定位-XPath.CSS 元素操作|浏览器操作方法 鼠标和键盘操作 元素等待 下拉选择框.弹出框.滚动条操作 frame切换. ...

  3. Web自动化测试教程

    转载自python+selenium自动化软件测试(第2章):WebDriver API - Web自动化测试 - 博客园 (cnblogs.com) 目录 1.1 操作元素基本方法 1.1.1 打开 ...

  4. web自动化测试笔记

    学习交流微信:AllenAi1877 一.什么样的项目需要做自动化测试: 1.需求变动不频繁 2.项目周期长 3.项目需要回归测试二.什么阶段开始: 功能测试完毕(手工测试)三.web自动化测试所属分 ...

  5. web自动化测试常见面试题

    一.找不到元素可能出现的原因: 1.元素表达式错误 2.不在指定的frame 3.等待时间短,页面加载速度慢 4.执行脚本打开了新的页面,不在指定的窗口中 二.优化web自动化测试效率 避免使用强制等 ...

  6. python接口自动化用例管理_python接口自动化测试(六)-unittest-单个用例管理

    前面五节主要介绍了环境搭建和requests库的使用,可以使用这些进行接口请求的发送.但是如何管理接口案例?返回结果如何自动校验?这些内容光靠上面五节是不行的,因此从本节开始我们引入python单元测 ...

  7. 使用 Python+Selenium + 第三方库实现的简单的 web 自动化测试框架 源码

    使用 Python+Selenium + 第三方库实现简单的 web 自动化测试框架,为 web 自动化测试编写更加便利和可维护. 一.配置(config) 1.1 说明 设置自动化案例运行时的属性值 ...

  8. 实用selenium+python实现web自动化测试

    为什么选python? 之前的菜鸟系列是基于java的,一年没学其实也忘的差不多了,目前所测的产品部分也是python写的,而且团队也在推广python,其实就测试人员来说,python也相当受欢迎. ...

  9. Web自动化测试面试

    一.Web 自动化测试 1.Selenium 中 hidden 或者是 display = none 的元素是否可以定位到? 不能,可以写 JavaScript 将标签中的 hidden 先改为 0, ...

最新文章

  1. LeetCode简单题之实现 strStr()
  2. 增强现实:一场正在到来的医疗革命
  3. 【Groovy】闭包 Closure ( 闭包类 Closure 简介 | this、owner、delegate 成员区别 | 静态闭包变量 | 闭包中定义闭包 )
  4. 同工不同酬,年薪 50 万美金的工程师到底有什么神本事?
  5. 第五届省赛(软件类)真题----Java大学B组答案及解析
  6. 网络编程之-----------进程
  7. Django中Form组件的使用
  8. Hadoop阅读笔记(一)——强大的MapReduce
  9. python---之suplot和suplots的区别
  10. SCCM2012系列之十二,SCCM2012部署操作系统
  11. 数组前半部分和后半部分有序的全排序
  12. 拓端tecdat|Matlab正态分布、历史模拟法、加权移动平均线 EWMA估计风险价值VaR和回测Backtest标准普尔指数 SP500时间序列
  13. 算法:62唯一路径Unique Paths 动态规划和排列组合算法
  14. protel 99se 负片打印
  15. 计算机四级题库百度云,四级题库免费
  16. 计算机组装与维护结构图,图解计算机组装与维护
  17. keras之父《python深度学习》笔记 第六章
  18. 【PHPWord】解决Word转PDF可能出现的空白页问题 | 插入换行符、分页符、定义文档网络时对齐网格
  19. 网络环路原理及其影响
  20. python下载歌曲教程视频_实现python批量下载网易云音乐的免费音乐

热门文章

  1. 1112. Stucked Keyboard (20)
  2. fir.im Weekly - iOS 保持界面流畅的技巧
  3. 对 Python 开发者而言,IPython 仍然是 Jupyter Notebook 的核心
  4. java python算法_用Python,Java和C ++示例解释的排序算法
  5. ess用户名和密码_陈ess洁如何从摄影系学生转变为成功的自由职业者和内容创作者(播客)...
  6. 课程表美化 css_通过这门11小时的免费课程学习HTML和CSS
  7. 我是“真正的”软件工程师吗?
  8. java web dao_JavaWeb项目,DAO应该怎么写?
  9. Dubbo 整合 Pinpoint 做分布式服务请求跟踪
  10. C语言比较好的风格梳理