5 元素操作
当我们看到某个按钮的时候,我们自己可以看懂上面的字是注册还是登录,但是机器无法看懂这个时候就涉及到元素的操作了,我们可以通过对元素进行多种操作,其中最为重要的一个就是获取某个按钮上的文字,这样我们就能在我们的测试代码中验证这个按钮的功能了
前提:获取到元素之后再对元素进行操作
1.点击和输入
点击操作
el = driver.find_element_by_xxxx() el.click()
清空&输入操作
el = driver.find_element_by_xxxx() el.clear() # 清空操作,只能清空能够输入文本的元素,比如说input,text el.send_keys(data) # 输入操作,同上,用于向元素输入内容
2.提交操作
- 提交
el = driver.find_element_by_xxxx() el.submit() # 一般可以用在登录的场景,和click的操作一致,但是应用范围不如click广
3.获取元素信息的操作
获取文本内容
el.text
获取标签属性
el.get_attribute(属性名)
获取元素尺寸
el.size
获取是否可见
el.is_displayed()
练习案例1
from selenium import webdriver
import time
url = 'https://www.so.com/'
driver = webdriver.Firefox()
driver.get(url)
# 定位到输入框,输入,擦除,在输入
el = driver.find_element_by_id('input')
el.send_keys('python')
time.sleep(3)
el.clear()
time.sleep(3)
el.send_keys('itcast')
el_sub = driver.find_element_by_id('search-button')
# el_sub.click()
el_sub.submit()
time.sleep(5)
driver.quit()
练习案例2
from selenium import webdriver
driver = webdriver.Firefox()
url = 'https://cn.bing.com/'
driver.get(url)
# 定位到输入框
el = driver.find_element_by_tag_name('input')
el.send_keys('美国')
# 定位到搜搜按钮
el_sub = driver.find_element_by_id('sb_form_go')
el.submit()
# 定位到所有搜索结果元素
results = driver.find_elements_by_css_selector('.b_algo>h2>a')
print(len(results))
for i in results:
# 打印相关信息
print(i.text,i.get_attribute('href'))
print(i.size,i.is_displayed())
driver.close()