前言
前面我们学习了定位元素,定位只是第一步,定位之后就需要对这个元素进行操作了。webdriver中最常用的几个操作元素的方法
- clear() 清除文本
- send_keys(value) 模拟按键输入
- click() 单击元素
登录QQ邮箱
接下来我们就用登录QQ邮箱简单的演示一下这些方法的使用
# 登录QQ邮箱
from selenium import webdriver
import time
driver = webdriver.Chrome()
# 访问QQ邮箱登录页
driver.get('https://mail.qq.com/')
time.sleep(5)
# 切换iframe
driver.switch_to.frame("login_frame")
# 使用账号密码登录
driver.find_element_by_xpath("//*[@id='switcher_plogin']").click()
QQ_number = driver.find_element_by_xpath("//*[@id='u']") # 定位QQ号输入框元素
QQ_number.clear() # 清除文本
QQ_number.send_keys('xxxxxx@qq.com') # 输入QQ号
time.sleep(1)
password = driver.find_element_by_css_selector("#p") # 定位密码输入框元素
password.clear() # 清除文本
password.send_keys('your_password') # 输入密码
time.sleep(1)
# 点击登录
driver.find_element_by_id('login_button').click()
time.sleep(2)
driver.quit()
clear() 方法用于清除文本输入框中的内容,例如,登录框内有默认的“账号”“密码”等提示信息,所以最好使先清除输入框的默认提示信息
send_keys() 模拟键盘想输入框里输入内容
click() 方法用来点击一个元素
WebElement接口常用方法
- submit() 提交表单
例如,输入框输入关键字之后的“回车”操作就可以通过submit()方法模拟。有时候submit()可以与click()方法互换使用,但范围远不及click广泛 - size 返回元素的尺寸
- text 获取元素的文本
- get_attribute(name) 获得属性值
- is_displayed() 该元素是否用户可见
from selenium import webdriver
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# 获得输入框尺寸
size = driver.find_element_by_id('kw').size
print(size)
# 返回元素的属性值,可以是id name type或其他任意属性
attribute = driver.find_element_by_id('kw').get_attribute('type')
print(attribute)
# 返回元素的结果是否可见
result = driver.find_element_by_id('kw').is_displayed()
print(result)
driver.quit()