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()

  

 

posted @   R-Bear  阅读(548)  评论(0编辑  收藏  举报
编辑推荐:
· 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的强缓存和协商缓存
· 一文读懂知识蒸馏
点击右上角即可分享
微信分享提示