Selenium-几种操作
2024-09-18 06:32:14
元素定位之后就要对它进行操作了,常见的集中操作如下:
click() 点击元素 eg.输入内容后,点击操作
send_keys("内容") 模拟按键输入 eg:百度输入框,输入内容
clear() 清除元素的内容 eg:清除百度输入框的内容
submit() 提交表单 eg:driver.find_element_by_id("su").submit() #百度的搜索按钮,可以用click,也可以用submit
text 获取元素的文本内容 eg:登录帐号后,提取帐号名称,并作判断,是否登录成功
is_displayed 判断元素是否可见 eg:driver.find_element_by_id("kw").is_displayed()
#! /usr/bin/env python
#coding=utf-8 '''
元素定位,下面的方法都要掌握,应用中一种不行就换个方式
''' from selenium import webdriver
import time url = "http://www.baidu.com"
driver = webdriver.Firefox()
driver.get(url)
time.sleep(5) #识别元素并操作
#一般有如下几种方法,其中id最为常用.这里需要注意识别元素一定要用唯一id
#记忆方法的时候,注意规律即可,非常容易记忆 #模拟输入
driver.find_element_by_id("kw").send_keys("博客园")
#模拟表单的提交按钮操作,新版百度搜索不需要这个了,他会自动搜索,再次看出ui的维护成本很高
#driver.find_element_by_id("kw").submit()
#driver.find_element_by_name("wd").send_keys("博客园")
#driver.find_element_by_class_name("s_ipt").send_keys("博客园")
time.sleep(5) '''
#点击事件
driver.get(url)
driver.find_element_by_link_text("新闻").click()
time.sleep(5) #对于超级连接比较长的可以尝试采用下面的方法,类似一种模糊匹配
driver.find_element_by_partial_link_text("首页").click()
time.sleep(5) #xpath神器,理论上来说,没有path定位不到的元素
#这里使用firepath查看
#xpath你理解为树形结构就OK,我们也可以通过类似上下级的关系来一层层定位 driver.get(url)
driver.find_element_by_xpath(".//*[@id='kw']").send_keys("博客园")
#driver.find_element_by_id("su").submit()
time.sleep(5) #清除内容
driver.find_element_by_id("kw").clear()
time.sleep(5)
#返回
driver.back()
time.sleep(5) #利用两个元素属性进行唯一定位 and or,只适用于xpath
driver.find_element_by_xpath(".//*[@id='kw' and @name='wd']").send_keys("博客园")
time.sleep(5) #获取元素的文本内容
driver.get("http://blog.csdn.net/jillliang/article/details/8747810")
time.sleep(5)
#blog_name = driver.find_element_by_class_name("header").text
#blog_name = driver.find_element_by_id("blog_title").text
blog_name = driver.find_element_by_xpath(".//*[@id='blog_title']/h2/a").text
print(blog_name)
'''
driver.quit()
最新文章
- Zookeeper常用命令
- sublime3 集成angularJs插件
- UIScrollView实现图片轮播器及其无限循环效果
- Android本机号码及Sim卡状态的获取
- [转载] Codis作者黄东旭细说分布式Redis架构设计和踩过的那些坑们
- RMAN备份与恢复之删除过期备份
- 用frame实现最基本的上中下三层布局,中间又分左右两部分.
- 佛山Uber优步司机奖励政策(1月25日~1月31日)
- jQuery mini ui 2
- COM模块三---根的形成和注册代理server(Building and Registering a Proxy DLL)
- 小白的Python之路 day5 re正则模块
- 关于如何使用xposed来hook某支付软件
- [mysql]错误解决之"Failed to start MySQL Server"
- Flutter错误集合
- mui侧滑菜单";点击含有mui-action-menu类的控件";无法实现侧滑
- intellij idea 显示打开文件路径按钮
- javamail插件发送不同类型邮件方式
- Tomcat8 启动中提示 org.apache.catalina.webresources.Cache.getResource Unable to add the resource
- Android -- ViewPager切换动画,PageTransformer
- LeetCode: Valid Palindrome 解题报告
热门文章
- grep -rl tttt /data/ 命令在 /data 目录下面搜寻包含tttt字符的命令
- 如何在struts2中实现下载?
- winerror.h中的内容(可以查看last error对应)
- ASP.NET动态网站制作(23)-- ADO.NET(2)
- 我为什么要学习jquery
- Unity框架入门
- willMoveToParentViewController和didMoveToParentViewController
- burp 代理的时候无法访问https网站
- 【BZOJ4358】permu kd-tree
- 【BZOJ4004】[JLOI2015]装备购买 贪心+高斯消元