selenium - webdriver 元素操作
定位元素之后,要对元素进行操作。如按钮,进行点击操作;编辑框,进行输入操作等。以下是几种常见的元素操作:
- clear() 清除文本
- send_keys() 模拟键盘输入
- click() 单击
- submit() 提交表单
- text 返回元素文本
- size() 返回元素尺寸
- get_attibute() 返回属性值
- is_displayed() 返回该元素是否用户可见
- title 返回当前页面的标题
- url 返回当前页面的url
下面分别介绍:
1. clear()、send_keys()、click()
from selenium import webdriver import time driver = webdriver.Chrome() driver.get('http://www.baidu.com') element = driver.find_element_by_id('kw') element.send_keys('zhangyang') # 输入zhangyang time.sleep(2) element.clear() # 清除输入框中的内容 time.sleep(2) element.send_keys('zhangsanfeng') # 输入zhangsanfeng driver.find_element_by_id('su').click() # 点击百度一下按钮 time.sleep(5) driver.close()
send_keys()不仅可以模拟键盘输入,还可以发送键盘按键,模拟文件上传等
element = driver.find_element_by_id('kw') element.send_keys('zhangyang') element.send_keys(Keys.ENTER) # 模拟回车键
2. submit()
用于提交表单。例如,在百度搜索框输入内容后,回车操作,就可以通过submit()方法模拟
from selenium import webdriver import time driver = webdriver.Chrome() driver.get('http://www.baidu.com') element = driver.find_element_by_id('kw') element.send_keys('zhangyang') element.submit() # 这样就不用点击百度一下按钮了,直接提交输入的内容 time.sleep(5) driver.close()
有时候submit()可以与click()方法互换使用,submit()同样也可以提交一个按钮,但submit()的应用远不及click()广泛
driver = webdriver.Chrome() driver.get('http://www.baidu.com') driver.find_element_by_id('kw').send_keys('zhangyang') driver.find_element_by_id('su').submit() # 提交百度一下按钮
3. text
用于获取两个尖括号之间的文本
例如:获取百度首页的 新闻
text1 = driver.find_element_by_name('tj_trnews').text # 获取新闻文本 print(text1) # 打印:新闻
4. size()、get_attribute()、is_displayed()
以百度首页为例,如下:
size1 = driver.find_element_by_id('su').size print(size1) # 打印: {'height': 36, 'width': 100} result = driver.find_element_by_id('su').is_displayed() print(result) # 打印: True text1 = driver.find_element_by_link_text('新闻').get_attribute('href') print(text1) # 打印: http://news.baidu.com/,若想获取按钮上的文本,也可通过name或class name属性获取
5. title、url
分别打印百度首页的title和url,如下:
title1 = driver.title print(title1) # 打印:百度一下,你就知道 url1 = driver.current_url print(url1) # 打印:https://www.baidu.com/