点击和输入

前面我们已经学习了定位元素, 定位只是第一步, 定位之后需要对这个元素进行操作, 或单击(按钮) 或输入(输入框) , 下面就来认识 WebDriver 中最常用的几个方法:

  • clear(): 清除文本。

  • send_keys (value): 模拟按键输入。

  • click(): 单击元素。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com") driver.find_element_by_id("kw").clear()
driver.find_element_by_id("kw").send_keys("selenium")
driver.find_element_by_id("su").click() driver.quit()

提交

  • submit()

submit()方法用于提交表单。 例如, 在搜索框输入关键字之后的“回车” 操作, 就可以通过该方法模拟。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("https://www.baidu.com") search_text = driver.find_element_by_id('kw')
search_text.send_keys('selenium')
search_text.submit() driver.quit()

有时候 submit()可以与 click()方法互换来使用, submit()同样可以提交一个按钮, 但 submit()的应用范围远不及 click()广泛。

其他常用方法

  • size: 返回元素的尺寸。

  • text: 获取元素的文本。

  • get_attribute(name): 获得属性值。

  • is_displayed(): 设置该元素是否用户可见。

from selenium import webdriver

driver = webdriver.Chrome()
driver.get("http://www.baidu.com") # 获得输入框的尺寸
size = driver.find_element_by_id('kw').size
print(size) # 返回百度页面底部备案信息
text = driver.find_element_by_id("cp").text
print(text) # 返回元素的属性值, 可以是 id、 name、 type 或其他任意属性
attribute = driver.find_element_by_id("kw").get_attribute('type')
print(attribute) # 返回元素的结果是否可见, 返回结果为 True 或 False
result = driver.find_element_by_id("kw").is_displayed()
print(result) driver.quit()

输出结果:

{'width': 500, 'height': 22}
©2015 Baidu 使用百度前必读 意见反馈 京 ICP 证 030173 号
text
True

执行上面的程序并查看结果: size 方法用于获取百度输入框的宽、 高, text 方法用于获得百度底部的备案信息, get_attribute()用于获得百度输入的 type 属性的值, is_displayed()用于返回一个元素是否可见, 如果可见则返回 True, 否则返回 False。

最新文章

  1. 微信小程序-画布组件
  2. Working with C# dictionary
  3. 14.quartus联合modelsim仿真
  4. CUDA ---- Hello World From GPU
  5. PowerDesigner 工具面板 association,inheritance,association link 不可用 解决方法
  6. bzoj3926: [Zjoi2015]诸神眷顾的幻想乡 对[广义后缀自动机]的一些理解
  7. 尚学堂 JAVA DAY12 java程序执行时内存的分配
  8. Java获取.properties配置文件某一项value根据key值
  9. MySQL之 ALTER vs CHANGE vs MODIFY COLUMN
  10. Nginx安装及配置虚拟主机
  11. JDBC操作MySQL数据
  12. Java运行原理、三大体系、jdk构成
  13. js怎么将 base64转换成图片
  14. Java_5.2 数组应用:*的打印
  15. 第五章—if语句
  16. JSON 与 JS 对象的关系
  17. dubbo+zk+maven的那点事
  18. aptitude约等于apt-get的工具
  19. HA集群中namenode连接不上journalnode,导致namenode启动不了
  20. JS判断两个对象相同属性的属性值是否相等

热门文章

  1. [转] PuTTY + Xming 远程使用 Linux GUI
  2. Linux中断分层--软中断和tasklet
  3. Gradle发布项目到 maven(1)
  4. 实现类似tail -f file功能
  5. SVN创建资源库和远程连接配置
  6. linux服务器git pull/push时避免频繁输入账号密码
  7. Django api
  8. python 批量ping服务器
  9. VS 正则表达式替换内容
  10. 【数据库】5.0 MySQL入门学习(五)——MySQL源码了解及MySQL初始化设置