Selenium-几种操作
元素定位之后就要对它进行操作了,常见的集中操作如下:
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()
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 | #! /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() |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏