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/

 

posted @ 2020-03-09 18:43  小虫虫大虫虫  阅读(675)  评论(0编辑  收藏  举报